-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
64 lines (64 loc) · 1.98 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
function calculate() {
//inputs
var total = document.getElementById("totalId").value;
var risk = document.getElementById("riskId").value;
var reward = document.getElementById("rewardId").value;
var leverage = document.getElementById("leverageId").value;
var specifiedMoney = document.getElementById("specifiedMoneyId").value;
var fraction = document.getElementById("fractionId").value;
//outputs
var margin = calcMargin(specifiedMoney, risk, leverage);
var loss = (margin * risk * leverage) / 100;
var recommendedLoss = total / fraction;
var recommendedLeverage = finalLeverage(
specifiedMoney,
risk,
recommendedLoss
);
// }
//setting the paraghraphs
document.getElementById("lessThanId").innerHTML = Number(margin).toFixed(2);
document.getElementById("worstId").innerHTML =
Number(loss).toFixed(2) +
" (recommended total risked money: " +
Number(recommendedLoss).toFixed(2) +
", recommended leverage: " +
(recommendedLeverage - 1) +
"-" +
recommendedLeverage +
")";
document.getElementById("bestId").innerHTML = Number(
(margin * reward * leverage) / 100
).toFixed(2);
}
// functions
function finalLeverage(specifiedMoney, risk, recommendedLoss) {
//error handling
if (specifiedMoney.length == 0 || risk.length == 0 || recommendedLoss == 0) {
return NaN;
}
const leverageArray = [1, 2];
while (
leverageArray[leverageArray.length - 1] !=
leverageArray[leverageArray.length - 2]
) {
newLeverage = calcLeverage(
calcMargin(specifiedMoney, risk, leverageArray[leverageArray.length - 1]),
risk,
recommendedLoss
);
leverageArray.push(newLeverage);
}
return leverageArray[leverageArray.length - 1];
}
function calcLeverage(margin, risk, recommendedLoss) {
let i = 1;
while (1) {
if ((margin * risk * i) / 100 > recommendedLoss) break;
else i++;
}
return i;
}
function calcMargin(specifiedMoney, risk, leverage) {
return specifiedMoney / (1 + (risk / 100) * leverage);
}