diff --git a/src/botPage/view/blockly/index.js b/src/botPage/view/blockly/index.js
index cf92dd5e2c..9bf3a102b3 100644
--- a/src/botPage/view/blockly/index.js
+++ b/src/botPage/view/blockly/index.js
@@ -22,6 +22,7 @@ import { getLanguage } from '../../../common/lang';
import { observer as globalObserver } from '../../../common/utils/observer';
import { showDialog } from '../../bot/tools';
import GTM from '../../../common/gtm';
+import { parseQueryString } from '../../../common/utils/tools';
const setBeforeUnload = off => {
if (off) {
@@ -262,7 +263,10 @@ export default class _Blockly {
window.addEventListener('resize', renderInstance, false);
renderInstance();
addBlocklyTranslation().then(() => {
- $.get('xml/main.xml', main => {
+ const defaultStrat = parseQueryString().strategy;
+ const xmlFile = defaultStrat ? `xml/${defaultStrat}.xml` : 'xml/main.xml';
+
+ $.get(xmlFile, main => {
repaintDefaultColours();
overrideBlocklyDefaultShape();
this.blocksXmlStr = Blockly.Xml.domToPrettyText(main);
diff --git a/src/common/utils/storageManager.js b/src/common/utils/storageManager.js
index 382eb94bb9..c7c6cc9165 100644
--- a/src/common/utils/storageManager.js
+++ b/src/common/utils/storageManager.js
@@ -69,3 +69,5 @@ export const set = (varName, value) => {
};
export const get = varName => store[varName];
+
+export const remove = varName => delete store[varName];
diff --git a/static/xml/dalembert.xml b/static/xml/dalembert.xml
new file mode 100644
index 0000000000..9bd1ca3d27
--- /dev/null
+++ b/static/xml/dalembert.xml
@@ -0,0 +1,733 @@
+
+
+ dalembert:resultIsWin
+ dalembert:profit
+ dalembert:totalProfit
+ dalembert:tradeAgain
+ dalembert:expectedProfit
+ dalembert:size
+ dalembert:amount
+ dalembert:profitUnits
+ dalembert:maximumLoss
+
+
+ D'Alembert Trade Amount
+ Describe this function...
+
+
+
+
+ EQ
+
+
+ dalembert:expectedProfit
+
+
+
+
+
+
+
+
+
+ dalembert:expectedProfit
+
+
+
+ NUMBER
+
+
+ abc
+
+
+ Expected Profit
+
+
+
+
+
+
+
+
+
+
+ EQ
+
+
+ dalembert:maximumLoss
+
+
+
+
+
+
+
+
+
+ dalembert:maximumLoss
+
+
+
+ NUMBER
+
+
+ abc
+
+
+ Maximum Loss Amount
+
+
+
+
+
+
+
+
+
+
+ EQ
+
+
+ dalembert:amount
+
+
+
+
+
+
+
+
+
+ dalembert:amount
+
+
+
+ NUMBER
+
+
+ abc
+
+
+ Trade Amount
+
+
+
+
+
+
+
+
+
+
+ EQ
+
+
+ dalembert:size
+
+
+
+
+
+
+
+
+
+ dalembert:size
+
+
+ 1
+
+
+
+
+
+
+
+
+ EQ
+
+
+ dalembert:profitUnits
+
+
+
+
+
+
+
+
+
+ dalembert:profitUnits
+
+
+ 0
+
+
+
+
+
+
+
+
+ EQ
+
+
+ dalembert:totalProfit
+
+
+
+
+
+
+
+
+
+ dalembert:totalProfit
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MULTIPLY
+
+
+ 1
+
+
+ dalembert:size
+
+
+
+
+ 1
+
+
+ dalembert:amount
+
+
+
+
+
+
+
+
+
+ D'Alembert Core Functionality
+ Describe this function...
+
+
+
+
+
+ dalembert:resultIsWin
+
+
+
+
+ dalembert:profitUnits
+
+
+ ADD
+
+
+ 1
+
+
+ dalembert:profitUnits
+
+
+
+
+ 1
+
+
+ dalembert:size
+
+
+
+
+
+
+
+
+
+ GT
+
+
+ dalembert:size
+
+
+
+
+ 1
+
+
+
+
+
+
+ dalembert:size
+
+
+ MINUS
+
+
+ 1
+
+
+ dalembert:size
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+ dalembert:profitUnits
+
+
+ 0
+
+
+
+
+ success
+ silent
+
+
+ One DAlembert session finished successfully.
+
+
+
+
+
+
+
+
+
+
+
+
+ dalembert:profitUnits
+
+
+ MINUS
+
+
+ 1
+
+
+ dalembert:profitUnits
+
+
+
+
+ 1
+
+
+ dalembert:size
+
+
+
+
+
+
+ dalembert:size
+
+
+ ADD
+
+
+ 1
+
+
+ dalembert:size
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ D'Alembert Trade Again After Purchase
+ Describe this function...
+
+
+ dalembert:totalProfit
+
+
+ 1
+
+
+ dalembert:profit
+
+
+
+
+ dalembert:totalProfit
+
+
+ DIVIDE
+
+
+ 1
+
+
+ ROUND
+
+
+ 3.1
+
+
+ MULTIPLY
+
+
+ 1
+
+
+ dalembert:totalProfit
+
+
+
+
+ 1
+
+
+ 100
+
+
+
+
+
+
+
+
+ 1
+
+
+ 100
+
+
+
+
+
+
+
+
+
+ dalembert:resultIsWin
+
+
+
+
+ success
+ silent
+
+
+
+
+
+ Won:
+
+
+
+
+ dalembert:profit
+
+
+
+
+
+
+
+
+ warn
+ silent
+
+
+
+
+
+ Lost:
+
+
+
+
+ ABS
+
+
+ 9
+
+
+ dalembert:profit
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ dalembert:resultIsWin
+
+
+
+
+ info
+ silent
+
+
+
+
+
+ Total Profit:
+
+
+
+
+ dalembert:totalProfit
+
+
+
+
+
+
+ dalembert:tradeAgain
+
+
+ FALSE
+
+
+
+
+
+
+
+ LT
+
+
+ dalembert:totalProfit
+
+
+
+
+ dalembert:expectedProfit
+
+
+
+
+
+
+
+
+
+ GT
+
+
+ dalembert:totalProfit
+
+
+
+
+ NEG
+
+
+ 9
+
+
+ dalembert:maximumLoss
+
+
+
+
+
+
+
+
+ dalembert:tradeAgain
+
+
+ TRUE
+
+
+
+
+
+
+
+
+ abc
+
+
+
+
+
+ Maximum Loss Occurred! Total Loss:
+
+
+
+
+ NEG
+
+
+ 9
+
+
+ dalembert:totalProfit
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ abc
+
+
+
+
+
+ Expected Profit Made! Total Profit:
+
+
+
+
+ dalembert:totalProfit
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ dalembert:tradeAgain
+
+
+
+
+ volidx
+ random_index
+ R_100
+ digits
+ evenodd
+ both
+ 60
+ FALSE
+ TRUE
+
+
+ t
+ USD
+
+
+ 5
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DIGITEVEN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 4
+
+
+
+
+ win
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/static/xml/martingale.xml b/static/xml/martingale.xml
new file mode 100644
index 0000000000..ed3d9bfaab
--- /dev/null
+++ b/static/xml/martingale.xml
@@ -0,0 +1,602 @@
+
+
+ martingale:resultIsWin
+ martingale:profit
+ martingale:totalProfit
+ martingale:tradeAgain
+ martingale:expectedProfit
+ martingale:size
+ martingale:amount
+ martingale:maximumLoss
+
+
+ Martingale Trade Amount
+ Describe this function...
+
+
+
+
+ EQ
+
+
+ martingale:expectedProfit
+
+
+
+
+
+
+
+
+
+ martingale:expectedProfit
+
+
+
+ NUMBER
+
+
+ abc
+
+
+ Expected Profit
+
+
+
+
+
+
+
+
+
+
+ EQ
+
+
+ martingale:maximumLoss
+
+
+
+
+
+
+
+
+
+ martingale:maximumLoss
+
+
+
+ NUMBER
+
+
+ abc
+
+
+ Maximum Loss Amount
+
+
+
+
+
+
+
+
+
+
+ EQ
+
+
+ martingale:amount
+
+
+
+
+
+
+
+
+
+ martingale:amount
+
+
+
+ NUMBER
+
+
+ abc
+
+
+ Trade Amount
+
+
+
+
+
+
+
+
+
+
+ EQ
+
+
+ martingale:size
+
+
+
+
+
+
+
+
+
+ martingale:size
+
+
+ 1
+
+
+
+
+
+
+
+
+ EQ
+
+
+ martingale:totalProfit
+
+
+
+
+
+
+
+
+
+ martingale:totalProfit
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MULTIPLY
+
+
+ 1
+
+
+ martingale:size
+
+
+
+
+ 1
+
+
+ martingale:amount
+
+
+
+
+
+
+
+
+
+ Martingale Core Functionality
+ Describe this function...
+
+
+
+
+
+ martingale:resultIsWin
+
+
+
+
+ martingale:size
+
+
+ 1
+
+
+
+
+
+
+ martingale:size
+
+
+ MULTIPLY
+
+
+ 1
+
+
+ martingale:size
+
+
+
+
+ 1
+
+
+ 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Martingale Trade Again After Purchase
+ Describe this function...
+
+
+ martingale:totalProfit
+
+
+ 1
+
+
+ martingale:profit
+
+
+
+
+ martingale:totalProfit
+
+
+ DIVIDE
+
+
+ 1
+
+
+ ROUND
+
+
+ 3.1
+
+
+ MULTIPLY
+
+
+ 1
+
+
+ martingale:totalProfit
+
+
+
+
+ 1
+
+
+ 100
+
+
+
+
+
+
+
+
+ 1
+
+
+ 100
+
+
+
+
+
+
+
+
+
+ martingale:resultIsWin
+
+
+
+
+ success
+ silent
+
+
+
+
+
+ Won:
+
+
+
+
+ martingale:profit
+
+
+
+
+
+
+
+
+ warn
+ silent
+
+
+
+
+
+ Lost:
+
+
+
+
+ ABS
+
+
+ 9
+
+
+ martingale:profit
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ martingale:resultIsWin
+
+
+
+
+ info
+ silent
+
+
+
+
+
+ Total Profit:
+
+
+
+
+ martingale:totalProfit
+
+
+
+
+
+
+ martingale:tradeAgain
+
+
+ FALSE
+
+
+
+
+
+
+
+ LT
+
+
+ martingale:totalProfit
+
+
+
+
+ martingale:expectedProfit
+
+
+
+
+
+
+
+
+
+ GT
+
+
+ martingale:totalProfit
+
+
+
+
+ NEG
+
+
+ 9
+
+
+ martingale:maximumLoss
+
+
+
+
+
+
+
+
+ martingale:tradeAgain
+
+
+ TRUE
+
+
+
+
+
+
+
+
+ abc
+
+
+
+
+
+ Maximum Loss Occurred! Total Loss:
+
+
+
+
+ NEG
+
+
+ 9
+
+
+ martingale:totalProfit
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ abc
+
+
+
+
+
+ Expected Profit Made! Total Profit:
+
+
+
+
+ martingale:totalProfit
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ martingale:tradeAgain
+
+
+
+
+ volidx
+ random_index
+ R_100
+ digits
+ evenodd
+ both
+ 60
+ FALSE
+ TRUE
+
+
+ t
+ USD
+
+
+ 5
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DIGITEVEN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 4
+
+
+
+
+ win
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file