Skip to content
This repository was archived by the owner on Feb 22, 2024. It is now read-only.

Commit 19c2777

Browse files
authored
Merge branch 'dev' into drag-event-gtm
2 parents 3c3aec1 + 99490d1 commit 19c2777

File tree

26 files changed

+1566
-45
lines changed

26 files changed

+1566
-45
lines changed

src/botPage/bot/Interface/MiscInterface.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ export default Interface =>
2929
notifyTelegram: this.notifyTelegram,
3030
getTotalRuns : () => this.tradeEngine.getTotalRuns(),
3131
getBalance : type => this.tradeEngine.getBalance(type),
32-
getTotalProfit: () => this.tradeEngine.getTotalProfit(),
32+
getTotalProfit: toString =>
33+
this.tradeEngine.getTotalProfit(toString, this.tradeEngine.tradeOptions.currency),
3334
};
3435
}
3536
};

src/botPage/bot/Interface/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ export default class Interface extends ToolsInterface(TicksInterface(class {}))
3737
};
3838
}
3939
getBotInterface() {
40-
const getDetail = i => createDetails(this.get('contract'))[i];
40+
const getDetail = (i, pipSize) => createDetails(this.get('contract'), pipSize)[i];
4141

4242
return {
4343
init : (...args) => this.tradeEngine.init(...args),
@@ -50,7 +50,7 @@ export default class Interface extends ToolsInterface(TicksInterface(class {}))
5050
sellAtMarket : () => this.tradeEngine.sellAtMarket(),
5151
getSellPrice : () => this.getSellPrice(),
5252
isResult : result => getDetail(10) === result,
53-
readDetails : i => getDetail(i - 1),
53+
readDetails : i => getDetail(i - 1, this.tradeEngine.getPipSize()),
5454
};
5555
}
5656
sleep(arg = 1) {

src/botPage/bot/Interpreter.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,8 +149,10 @@ export default class Interpreter {
149149
}
150150
terminateSession() {
151151
this.$scope.api.disconnect();
152-
globalObserver.emit('bot.stop');
153152
this.stopped = true;
153+
154+
globalObserver.emit('bot.stop');
155+
globalObserver.setState({ isRunning: false });
154156
}
155157
stop() {
156158
if (this.bot.tradeEngine.isSold === false && !this.isErrorTriggered) {

src/botPage/bot/TradeEngine/Ticks.js

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,18 +31,30 @@ export default Engine =>
3131
tickListenerKey = key;
3232
}
3333
}
34-
getTicks() {
35-
return new Promise(resolve =>
36-
this.$scope.ticksService
37-
.request({ symbol: this.symbol })
38-
.then(ticks => resolve(ticks.map(o => o.quote)))
39-
);
34+
getTicks(toString = false) {
35+
return new Promise(resolve => {
36+
this.$scope.ticksService.request({ symbol: this.symbol }).then(ticks => {
37+
const pipSize = this.getPipSize();
38+
const ticksList = ticks.map(o => {
39+
if (toString) {
40+
return o.quote.toFixed(pipSize);
41+
}
42+
return o.quote;
43+
});
44+
45+
resolve(ticksList);
46+
});
47+
});
4048
}
41-
getLastTick(raw) {
49+
getLastTick(raw, toString = false) {
4250
return new Promise(resolve =>
43-
this.$scope.ticksService
44-
.request({ symbol: this.symbol })
45-
.then(ticks => resolve(raw ? getLast(ticks) : getLast(ticks).quote))
51+
this.$scope.ticksService.request({ symbol: this.symbol }).then(ticks => {
52+
let lastTick = raw ? getLast(ticks) : getLast(ticks).quote;
53+
if (toString && !raw) {
54+
lastTick = lastTick.toFixed(this.getPipSize());
55+
}
56+
resolve(lastTick);
57+
})
4658
);
4759
}
4860
getLastDigit() {

src/botPage/bot/TradeEngine/Total.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,14 @@ export default Engine =>
8686
const accountStat = this.getAccountStat();
8787
return accountStat.totalRuns;
8888
}
89-
getTotalProfit() {
89+
getTotalProfit(toString, currency) {
9090
const accountStat = this.getAccountStat();
91-
return Number(accountStat.totalProfit);
91+
return toString && accountStat.totalProfit !== 0
92+
? roundBalance({
93+
currency,
94+
balance: +accountStat.totalProfit,
95+
})
96+
: +accountStat.totalProfit;
9297
}
9398
/* eslint-enable */
9499
checkLimits(tradeOption) {

src/botPage/bot/TradeEngine/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ export default class TradeEngine extends Balance(Purchase(Sell(OpenContract(Prop
9292
}
9393

9494
globalObserver.emit('bot.running');
95+
globalObserver.setState({ isRunning: true });
9596

9697
this.tradeOptions = expectTradeOptions(tradeOptions);
9798

src/botPage/bot/__tests__/block-tests/tools-test/Misc.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ describe('Misc. tools', () => {
1717
Bot.notify({ message: 'Test', className: 'info'})
1818
watch('before')
1919
result.totalRuns = Bot.getTotalRuns();
20-
result.totalProfit = Bot.getTotalProfit();
20+
result.totalProfit = Bot.getTotalProfit(false, null);
2121
result.balance = Bot.getBalance('NUM')
2222
result.balanceStr = Bot.getBalance('STR')
2323
`
@@ -47,7 +47,9 @@ describe('Misc. tools', () => {
4747
});
4848

4949
it('Notify', () => {
50-
const { notify: { className, message } } = observed;
50+
const {
51+
notify: { className, message },
52+
} = observed;
5153

5254
expect(className).equal('info');
5355
expect(message).equal('Test');

src/botPage/bot/tools.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ export const doUntilDone = (f, types) => {
134134
});
135135
};
136136

137-
export const createDetails = contract => {
137+
export const createDetails = (contract, pipSize) => {
138138
const { sell_price: sellPrice, buy_price: buyPrice, currency } = contract;
139139
const profit = Number(roundBalance({ currency, balance: sellPrice - buyPrice }));
140140
const result = profit < 0 ? 'loss' : 'win';
@@ -151,6 +151,8 @@ export const createDetails = contract => {
151151
+contract.exit_tick,
152152
+(contract.barrier ? contract.barrier : 0),
153153
result,
154+
(+contract.entry_tick).toFixed(pipSize),
155+
(+contract.exit_tick).toFixed(pipSize),
154156
];
155157
};
156158

src/botPage/common/const.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,10 @@ const config = {
2121
[translate('contract type'), '5'],
2222
[translate('entry spot'), '6'],
2323
[translate('entry value'), '7'],
24+
[translate('entry value string'), '12'],
2425
[translate('exit spot'), '8'],
2526
[translate('exit value'), '9'],
27+
[translate('exit value string'), '13'],
2628
[translate('barrier'), '10'],
2729
[translate('result'), '11'],
2830
],

src/botPage/view/TradeInfoPanel/TradeTable.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ export default class TradeTable extends Component {
5050
{ key: 'timestamp', width: 192, resizable: true, name: translate('Timestamp') },
5151
{ key: 'reference', width: 110, resizable: true, name: translate('Reference') },
5252
{ key: 'contract_type', width: 70, resizable: true, name: translate('Trade type') },
53-
{ key: 'entry_tick', width: 75, resizable: true, name: translate('Entry spot') },
54-
{ key: 'exit_tick', width: 75, resizable: true, name: translate('Exit spot') },
53+
{ key: 'entry_tick', width: 82, resizable: true, name: translate('Entry spot') },
54+
{ key: 'exit_tick', width: 82, resizable: true, name: translate('Exit spot') },
5555
{ key: 'buy_price', width: 80, resizable: true, name: translate('Buy price') },
5656
{ key: 'profit', width: 80, resizable: true, name: translate('Profit/Loss'), formatter: ProfitColor },
5757
{ key: 'contract_status', width: 70, resizable: true, name: translate('Status'), formatter: StatusFormat },

0 commit comments

Comments
 (0)