kmd0320
@kmd0320

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

javaScriptのコードのログで倍率減少の仕方

解決したいこと

ログ部分の倍率のロジックのコードでせめて三回ぐらいにScriptのロジックがなるように
修正をお願いします

発生している問題・エラー

Scriptのログを見てください。
倍率が30倍から減少していくのですが、
最初のうちは、減少幅が細かくないのですが
if (losecount >= 20) {
varix = 1.22;
}
if (losecount >=50) {
varix = 1.33;

このコードあたりから減少幅が細かくなって
次の倍率にすぐ変わりません。
6倍率には八回も同じ6倍の中で
減少しています。
せめて三回ぐらいにScriptのロジックがなるように
修正をお願いします。

下がログです。
Betting: 0.0010000 X 30.00
Betting: 0.0011500 X 27.27
Betting: 0.0013225 X 25.00
Betting: 0.0015209 X 23.08
Betting: 0.0017490 X 21.43
Betting: 0.0020114 X 20.00
Betting: 0.0023131 X 18.75
Betting: 0.0026600 X 17.65
Betting: 0.0030590 X 16.67
Betting: 0.0035179 X 15.79
Betting: 0.0040456 X 15.00
Betting: 0.0046524 X 14.29
Betting: 0.0053503 X 13.64
Betting: 0.0061528 X 13.04
Betting: 0.0070757 X 12.50
Betting: 0.0081371 X 12.00
Betting: 0.0093576 X 11.54
Betting: 0.0107613 X 11.11
Betting: 0.0123755 X 10.71
Betting: 0.0142318 X 10.34
Betting: 0.0163665 X 10.00
Betting: 0.0199672 X 9.68
Betting: 0.0243600 X 9.37
Betting: 0.0297191 X 9.09
Betting: 0.0362574 X 8.82
Betting: 0.0442340 X 8.57
Betting: 0.0539654 X 8.33
Betting: 0.0658378 X 8.11
Betting: 0.0803222 X 7.89
Betting: 0.0979931 X 7.69
Betting: 0.1195515 X 7.50
Betting: 0.1458529 X 7.32
Betting: 0.1779405 X 7.14
Betting: 0.2170874 X 6.98
Betting: 0.2648466 X 6.82
Betting: 0.3231129 X 6.67
Betting: 0.3941977 X 6.52
Betting: 0.4809212 X 6.38
Betting: 0.5867239 X 6.25
Betting: 0.7158031 X 6.12
Total Profit: 0.1893131(0.20%)
Betting: 0.8732798 X 6.00
Betting: 1.0654014 X 5.88
Betting: 1.2997897 X 5.77
Betting: 1.5857434 X 5.66
Betting: 1.9346069 X 5.56
Betting: 2.3602205 X 5.45
Betting: 2.8794690 X 5.36
Betting: 3.5129522 X 5.26
Betting: 4.2858016 X 5.17
Betting: 5.2286780 X 5.08
Betting: 6.3789872 X 5.00
Betting: 8.4840529 X 4.92
Betting: 11.2837904 X 4.84
Betting: 15.0074412 X 4.76

該当するソースコード

var config = {
    baseBet: {
        label: 'Base Bet',
        value: 0.001,
        type: 'number'
    },
    startingChance: {
        label: 'Starting Chance',
        value: 0.033,
        type: 'number'
    },
    stopWinPercentage: {  // 勝率での停止パーセンテージ
        label: 'Stop Win Percentage',
        value: 10, // 任意のパーセンテージに変更
        type: 'number'
    },
    stopLossPercentage: { // 敗率での停止パーセンテージ
        label: 'Stop Loss Percentage',
        value: 10, // 任意のパーセンテージに変更
        type: 'number'
    },
};




var chance = config.startingChance.value;
var currentPayout = ((1 / chance) * 3);

var losecount = 0;
var betcount = 0;
var varix = 1.10;



var previousBet = currentBet;

var runningbalance = currency.amount;
var originalbalance = currency.amount;
var baseBet = config.baseBet.value;
var currentBet = baseBet;


function main() {
    game.onBet = function () {
        game.bet(currentBet, currentPayout).then(function (payout) {
            runningbalance -= currentBet;
            previousBet = currentBet;
            betcount += 1;

            if (payout > 1) {
                var netwin = currentBet * currentPayout;
                runningbalance += netwin;

                currentBet = baseBet;
                losecount = 0;
                chance = 0.1;
                varix = 1.10;

            } else {

                if (losecount >= 20) {
                    varix = 1.22;
                }
                if (losecount >=50) {
                    varix = 1.33;
                }

                losecount += 1;
                currentBet = previousBet * varix;

                chance += 0.01;

            }

            currentPayout = ((1 / chance) *3);

            if (betcount % 100 == 0) {
                logSummary();
            }

            log.info('Betting: ' + currentBet.toFixed(7) + ' ' + ' X ' + ' ' + currentPayout.toFixed(2));

            // 勝率での停止条件
            if (calculateWinPercentage() >= config.stopWinPercentage.value) {
                log.success('Reached stop win percentage. Stopping the script.');
                game.stop();
            }

            // 敗率での停止条件
            if (calculateLossPercentage() >= config.stopLossPercentage.value) {
                log.error('Reached stop loss percentage. Stopping the script.');
                game.stop();
            }
        });
    }
}

function logSummary() {
    var netNumber = runningbalance - originalbalance;
    var netPercentage = (netNumber / originalbalance) * 100;

    if (originalbalance < runningbalance) {
        log.success('Total Profit: ' + netNumber.toFixed(7) + '(' + netPercentage.toFixed(2) + '%)');
    } else {
        log.error('Total Profit: ' + netNumber.toFixed(7) + '(' + netPercentage.toFixed(2) + '%)');
    }
}

// 勝率の計算
function calculateWinPercentage() {
    var netNumber = runningbalance - originalbalance;
    return (netNumber / originalbalance) * 100;
}

// 敗率の計算
function calculateLossPercentage() {
    return -calculateWinPercentage(); // 勝率を逆転させたもの
}

0

1Answer

すいません、コードに書いていないことが多いので回答として適切か自信がないですが、
currentPayoutの1の位の数字あたり減少回数が3回ぐらいに収まるようにしてほしい、と読み取りました。

currentPayoutはつまるところy = 3 / (chance + 0.01 * x)であり、これをグラフにするとxが増えるにつれて減少幅が小さくなることが分かります。
(chance = 0.1の場合)

image.png

そのため、減少幅を変えるには上記の数式に手を加える必要があります。

例えば、線形に減らしたい場合は以下などの式になります。
y = 30 - 0.3 * x

image.png

この式だと以下のような結果になります。

結果
30.00
29.70
29.40
29.10
28.80
28.50
28.20
27.90
27.60
27.30
27.00
26.70
26.40
26.10
25.80
25.50
25.20
24.90
24.60
24.30
24.00
23.70
23.40
23.10
22.80
22.50
22.20
21.90
21.60
21.30
21.00
20.70
20.40
20.10
19.80
19.50
19.20
18.90
18.60
0Like

Your answer might help someone💌