[{"content":" ماشین حساب تبدیل شرط جایزه مرحله ۱: جزئیات شرط جایزه مبلغ شرط جایزه ارزش شرط رایگان یا جایزه شما نوع شرط جایزه شرط رایگان (سهم برنگشتنی) شرط رایگان (سهم برگشتنی) شرط بدون ریسک SNR = فقط سود برمی‌گردد، SR = پرداخت کامل، بدون ریسک = بازپرداخت در صورت باخت مرحله ۲: ضرایب و صرافی فرمت ضرایب اعشاری کسری آمریکایی ضرایب Back ضرایب برای گذاشتن شرط جایزه ضرایب Lay (صرافی) ضرایب Lay در صرافی (خالی بگذارید برای ارزش نظری) کمیسیون صرافی (%) Betfair ~5%, Smarkets ~2% نتایج ارزش نقدی واقعی - نرخ تبدیل: - سهم Lay - مسئولیت Lay - سود اگر Back ببرد - سود اگر Lay ببرد - ضرایب بالاتر = نرخ تبدیل بالاتر. برای شرط‌های رایگان SNR از ضرایب 4.00\u0026#43; استفاده کنید تا تبدیل 70%\u0026#43; داشته باشید. بازنشانی ","permalink":"https://calculators-odds.com/fa/bonus-bet-calculator/","summary":"\u003cstyle\u003e\n    .bonusbet {\n        margin: 15px 0;\n        background-color: #1e2328;\n        border-radius: 8px;\n        padding: 25px;\n        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n        color: #e8e8e8;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n    }\n\n    .bonusbet__title {\n        font-size: 24px;\n        font-weight: bold;\n        margin-bottom: 25px;\n        text-align: center;\n    }\n\n    .bonusbet__container {\n        width: 100%;\n        max-width: 700px;\n        display: flex;\n        flex-direction: column;\n        gap: 20px;\n    }\n\n    .bonusbet__section {\n        background: #2d333b;\n        color: #e8e8e8;\n        padding: 20px;\n        border-radius: 8px;\n    }\n\n    .bonusbet__section-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #2196F3;\n        color: #2196F3;\n    }\n\n    .bonusbet__row {\n        display: flex;\n        gap: 15px;\n        margin-bottom: 15px;\n    }\n\n    .bonusbet__row:last-child {\n        margin-bottom: 0;\n    }\n\n    .bonusbet__input-group {\n        display: flex;\n        flex-direction: column;\n        flex: 1;\n        min-width: 140px;\n    }\n\n    .bonusbet__label {\n        font-size: 13px;\n        font-weight: bold;\n        margin-bottom: 6px;\n        color: #e8e8e8;\n    }\n\n    .bonusbet__input, .bonusbet__select {\n        background: rgba(0, 0, 0, 0.3);\n        color: #e8e8e8;\n        padding: 12px;\n        border: 1px solid rgba(255, 255, 255, 0.1);\n        border-radius: 4px;\n        font-size: 16px;\n        width: 100%;\n        box-sizing: border-box;\n        transition: border-color 0.2s;\n    }\n\n    .bonusbet__input:focus, .bonusbet__select:focus {\n        outline: none;\n        border-color: #2196F3;\n    }\n\n    .bonusbet__input::placeholder {\n        color: rgba(232, 232, 232, 0.4);\n    }\n\n    .bonusbet__select {\n        cursor: pointer;\n    }\n\n    .bonusbet__select option {\n        background: #2d333b;\n        color: #e8e8e8;\n    }\n\n    .bonusbet__hint {\n        font-size: 11px;\n        color: rgba(232, 232, 232, 0.5);\n        margin-top: 4px;\n    }\n\n    .bonusbet__output {\n        background: #2d333b;\n        padding: 20px;\n        border-radius: 8px;\n    }\n\n    .bonusbet__output-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #4CAF50;\n        color: #4CAF50;\n    }\n\n    .bonusbet__result-box {\n        background: rgba(76, 175, 80, 0.15);\n        border: 2px solid #4CAF50;\n        border-radius: 8px;\n        padding: 20px;\n        text-align: center;\n        margin-bottom: 20px;\n    }\n\n    .bonusbet__result-label {\n        font-size: 14px;\n        margin-bottom: 8px;\n        color: rgba(232, 232, 232, 0.8);\n    }\n\n    .bonusbet__result-value {\n        font-size: 32px;\n        font-weight: bold;\n        color: #4CAF50;\n    }\n\n    .bonusbet__result-sub {\n        font-size: 14px;\n        color: rgba(232, 232, 232, 0.6);\n        margin-top: 6px;\n    }\n\n    .bonusbet__grid {\n        display: grid;\n        grid-template-columns: repeat(2, 1fr);\n        gap: 15px;\n    }\n\n    .bonusbet__grid-item {\n        background: rgba(255, 255, 255, 0.05);\n        padding: 15px;\n        border-radius: 6px;\n        text-align: center;\n    }\n\n    .bonusbet__grid-label {\n        font-size: 12px;\n        color: rgba(232, 232, 232, 0.7);\n        margin-bottom: 8px;\n    }\n\n    .bonusbet__grid-value {\n        font-size: 20px;\n        font-weight: bold;\n    }\n\n    .bonusbet__grid-value.positive {\n        color: #4CAF50;\n    }\n\n    .bonusbet__grid-value.negative {\n        color: #f44336;\n    }\n\n    .bonusbet__info {\n        margin-top: 15px;\n        padding: 12px 15px;\n        background: rgba(33, 150, 243, 0.15);\n        border: 1px solid rgba(33, 150, 243, 0.3);\n        border-radius: 4px;\n        font-size: 13px;\n        text-align: center;\n        color: rgba(232, 232, 232, 0.8);\n    }\n\n    .bonusbet__reset {\n        margin-top: 20px;\n        padding: 12px 40px;\n        background-color: rgba(255, 255, 255, 0.1);\n        color: #e8e8e8;\n        border: 1px solid rgba(255, 255, 255, 0.2);\n        border-radius: 4px;\n        font-size: 14px;\n        cursor: pointer;\n        transition: all 0.2s;\n    }\n\n    .bonusbet__reset:hover {\n        background-color: rgba(255, 255, 255, 0.2);\n    }\n\n    .invalid {\n        border: 2px solid #f44336 !important;\n    }\n\n    @media (max-width: 600px) {\n        .bonusbet__row {\n            flex-direction: column;\n        }\n        .bonusbet__grid {\n            grid-template-columns: 1fr;\n        }\n    }\n\u003c/style\u003e\n\n\u003csection class=\"bonusbet\"\u003e\n    \u003cdiv class=\"bonusbet__title\"\u003eماشین حساب تبدیل شرط جایزه\u003c/div\u003e\n\n    \u003cdiv class=\"bonusbet__container\"\u003e\n        \n        \u003cdiv class=\"bonusbet__section\"\u003e\n            \u003cdiv class=\"bonusbet__section-title\"\u003eمرحله ۱: جزئیات شرط جایزه\u003c/div\u003e\n            \u003cdiv class=\"bonusbet__row\"\u003e\n                \u003cdiv class=\"bonusbet__input-group\"\u003e\n                    \u003clabel class=\"bonusbet__label\"\u003eمبلغ شرط جایزه\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"bonusbet__input bonusbet__amount\" placeholder=\"50\" min=\"0\" step=\"0.01\" /\u003e\n                    \u003cspan class=\"bonusbet__hint\"\u003eارزش شرط رایگان یا جایزه شما\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"bonusbet__input-group\"\u003e\n                    \u003clabel class=\"bonusbet__label\"\u003eنوع شرط جایزه\u003c/label\u003e\n                    \u003cselect class=\"bonusbet__select bonusbet__type\"\u003e\n                        \u003coption value=\"snr\"\u003eشرط رایگان (سهم برنگشتنی)\u003c/option\u003e\n                        \u003coption value=\"sr\"\u003eشرط رایگان (سهم برگشتنی)\u003c/option\u003e\n                        \u003coption value=\"riskfree\"\u003eشرط بدون ریسک\u003c/option\u003e\n                    \u003c/select\u003e\n                    \u003cspan class=\"bonusbet__hint\"\u003eSNR = فقط سود برمی‌گردد، SR = پرداخت کامل، بدون ریسک = بازپرداخت در صورت باخت\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"bonusbet__section\"\u003e\n            \u003cdiv class=\"bonusbet__section-title\"\u003eمرحله ۲: ضرایب و صرافی\u003c/div\u003e\n            \u003cdiv class=\"bonusbet__row\"\u003e\n                \u003cdiv class=\"bonusbet__input-group\"\u003e\n                    \u003clabel class=\"bonusbet__label\"\u003eفرمت ضرایب\u003c/label\u003e\n                    \u003cselect class=\"bonusbet__select bonusbet__format\"\u003e\n                        \u003coption value=\"Decimal\"\u003eاعشاری\u003c/option\u003e\n                        \u003coption value=\"Fractional\"\u003eکسری\u003c/option\u003e\n                        \u003coption value=\"American\"\u003eآمریکایی\u003c/option\u003e\n                    \u003c/select\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"bonusbet__input-group\"\u003e\n                    \u003clabel class=\"bonusbet__label\"\u003eضرایب Back\u003c/label\u003e\n                    \u003cinput type=\"text\" class=\"bonusbet__input bonusbet__back-odds\" placeholder=\"4.00\" /\u003e\n                    \u003cspan class=\"bonusbet__hint\"\u003eضرایب برای گذاشتن شرط جایزه\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"bonusbet__row\"\u003e\n                \u003cdiv class=\"bonusbet__input-group\"\u003e\n                    \u003clabel class=\"bonusbet__label\"\u003eضرایب Lay (صرافی)\u003c/label\u003e\n                    \u003cinput type=\"text\" class=\"bonusbet__input bonusbet__lay-odds\" placeholder=\"4.10\" /\u003e\n                    \u003cspan class=\"bonusbet__hint\"\u003eضرایب Lay در صرافی (خالی بگذارید برای ارزش نظری)\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"bonusbet__input-group\"\u003e\n                    \u003clabel class=\"bonusbet__label\"\u003eکمیسیون صرافی (%)\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"bonusbet__input bonusbet__commission\" placeholder=\"5\" value=\"5\" min=\"0\" max=\"100\" step=\"0.1\" /\u003e\n                    \u003cspan class=\"bonusbet__hint\"\u003eBetfair ~5%, Smarkets ~2%\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"bonusbet__output\"\u003e\n            \u003cdiv class=\"bonusbet__output-title\"\u003eنتایج\u003c/div\u003e\n\n            \u003cdiv class=\"bonusbet__result-box\"\u003e\n                \u003cdiv class=\"bonusbet__result-label\"\u003eارزش نقدی واقعی\u003c/div\u003e\n                \u003cdiv class=\"bonusbet__result-value bonusbet__real-value\"\u003e-\u003c/div\u003e\n                \u003cdiv class=\"bonusbet__result-sub bonusbet__conversion-rate\"\u003eنرخ تبدیل: -\u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"bonusbet__grid\"\u003e\n                \u003cdiv class=\"bonusbet__grid-item\"\u003e\n                    \u003cdiv class=\"bonusbet__grid-label\"\u003eسهم Lay\u003c/div\u003e\n                    \u003cdiv class=\"bonusbet__grid-value bonusbet__lay-stake-result\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"bonusbet__grid-item\"\u003e\n                    \u003cdiv class=\"bonusbet__grid-label\"\u003eمسئولیت Lay\u003c/div\u003e\n                    \u003cdiv class=\"bonusbet__grid-value bonusbet__liability-result\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"bonusbet__grid-item\"\u003e\n                    \u003cdiv class=\"bonusbet__grid-label\"\u003eسود اگر Back ببرد\u003c/div\u003e\n                    \u003cdiv class=\"bonusbet__grid-value bonusbet__profit-back\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"bonusbet__grid-item\"\u003e\n                    \u003cdiv class=\"bonusbet__grid-label\"\u003eسود اگر Lay ببرد\u003c/div\u003e\n                    \u003cdiv class=\"bonusbet__grid-value bonusbet__profit-lay\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"bonusbet__info bonusbet__tip\"\u003e\n                ضرایب بالاتر = نرخ تبدیل بالاتر. برای شرط‌های رایگان SNR از ضرایب 4.00\u0026#43; استفاده کنید تا تبدیل 70%\u0026#43; داشته باشید.\n            \u003c/div\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cbutton class=\"bonusbet__reset\" type=\"button\"\u003eبازنشانی\u003c/button\u003e\n\u003c/section\u003e\n\n\u003cscript\u003e\n(function() {\n    const container = document.currentScript.previousElementSibling;\n\n    const amountInput = container.querySelector('.bonusbet__amount');\n    const typeSelect = container.querySelector('.bonusbet__type');\n    const formatSelect = container.querySelector('.bonusbet__format');\n    const backOddsInput = container.querySelector('.bonusbet__back-odds');\n    const layOddsInput = container.querySelector('.bonusbet__lay-odds');\n    const commissionInput = container.querySelector('.bonusbet__commission');\n\n    const realValueEl = container.querySelector('.bonusbet__real-value');\n    const conversionRateEl = container.querySelector('.bonusbet__conversion-rate');\n    const layStakeEl = container.querySelector('.bonusbet__lay-stake-result');\n    const liabilityEl = container.querySelector('.bonusbet__liability-result');\n    const profitBackEl = container.querySelector('.bonusbet__profit-back');\n    const profitLayEl = container.querySelector('.bonusbet__profit-lay');\n\n    const resetBtn = container.querySelector('.bonusbet__reset');\n\n    function validateFractionalCoefficient(c) { return /^\\d+\\/\\d+$/.test(c); }\n    function validateDecimalCoefficient(c) { return /^\\d+(\\.\\d+)?$/.test(c) \u0026\u0026 parseFloat(c) \u003e 1; }\n    function validateAmericanCoefficient(c) { return /^[-+]?\\d+$/.test(c); }\n\n    function convertFractionToDecimal(f) {\n        var p = f.split('/');\n        if (p.length !== 2) return null;\n        var n = parseFloat(p[0]), d = parseFloat(p[1]);\n        if (isNaN(n) || isNaN(d) || d === 0) return null;\n        return (n / d) + 1;\n    }\n\n    function convertAmericanToDecimal(a) {\n        var v = parseFloat(a);\n        if (isNaN(v)) return null;\n        if (v \u003e 0) return (v / 100) + 1;\n        if (v \u003c 0) return (100 / Math.abs(v)) + 1;\n        return 2;\n    }\n\n    function getDecimal(input) {\n        var fmt = formatSelect.value;\n        var val = input.value.trim();\n        if (fmt === 'Fractional') {\n            if (!validateFractionalCoefficient(val)) return null;\n            return convertFractionToDecimal(val);\n        } else if (fmt === 'Decimal') {\n            if (!validateDecimalCoefficient(val)) return null;\n            return parseFloat(val);\n        } else if (fmt === 'American') {\n            if (!validateAmericanCoefficient(val)) return null;\n            return convertAmericanToDecimal(val);\n        }\n        return null;\n    }\n\n    function calculate() {\n        var bonus = parseFloat(amountInput.value);\n        var betType = typeSelect.value;\n        var backDec = getDecimal(backOddsInput);\n        var commission = parseFloat(commissionInput.value) / 100;\n        if (isNaN(commission)) commission = 0.05;\n\n        \n        if (backDec === null || backDec \u003c= 1) {\n            if (backOddsInput.value.trim()) backOddsInput.classList.add('invalid');\n            resetOutput();\n            return;\n        } else {\n            backOddsInput.classList.remove('invalid');\n        }\n\n        if (isNaN(bonus) || bonus \u003c= 0) { resetOutput(); return; }\n\n        \n        var layVal = layOddsInput.value.trim();\n        var layDec = null;\n        if (layVal) {\n            layDec = getDecimal(layOddsInput);\n            if (layDec === null || layDec \u003c= 1) {\n                layOddsInput.classList.add('invalid');\n                resetOutput();\n                return;\n            } else {\n                layOddsInput.classList.remove('invalid');\n            }\n        } else {\n            layOddsInput.classList.remove('invalid');\n        }\n\n        var layStake, liability, profitBack, profitLay, guaranteedProfit, convRate;\n\n        if (betType === 'snr') {\n            \n            if (layDec) {\n                layStake = (bonus * (backDec - 1)) / (layDec - commission);\n                liability = layStake * (layDec - 1);\n                profitBack = bonus * (backDec - 1) - liability;\n                profitLay = layStake * (1 - commission);\n                guaranteedProfit = Math.min(profitBack, profitLay);\n                convRate = (guaranteedProfit / bonus) * 100;\n            } else {\n                \n                guaranteedProfit = bonus * (backDec - 1) / backDec;\n                convRate = (guaranteedProfit / bonus) * 100;\n                layStake = null;\n            }\n        } else if (betType === 'sr') {\n            \n            if (layDec) {\n                layStake = (bonus * backDec) / (layDec - commission);\n                liability = layStake * (layDec - 1);\n                profitBack = bonus * backDec - liability;\n                profitLay = layStake * (1 - commission);\n                guaranteedProfit = Math.min(profitBack, profitLay);\n                convRate = (guaranteedProfit / bonus) * 100;\n            } else {\n                guaranteedProfit = bonus * (backDec - 1) / backDec + bonus / backDec;\n                convRate = (guaranteedProfit / bonus) * 100;\n                layStake = null;\n            }\n        } else {\n            \n            if (layDec) {\n                layStake = (bonus * backDec) / (layDec - commission);\n                liability = layStake * (layDec - 1);\n                \n                profitBack = bonus * (backDec - 1) - liability;\n                \n                profitLay = layStake * (1 - commission) - bonus + bonus;\n                profitLay = layStake * (1 - commission);\n                guaranteedProfit = Math.min(profitBack, profitLay);\n                convRate = (guaranteedProfit / bonus) * 100;\n            } else {\n                \n                guaranteedProfit = bonus * (1 - 1 / backDec);\n                convRate = (guaranteedProfit / bonus) * 100;\n                layStake = null;\n            }\n        }\n\n        \n        realValueEl.textContent = '$' + guaranteedProfit.toFixed(2);\n        conversionRateEl.textContent = 'نرخ تبدیل: ' + convRate.toFixed(1) + '%';\n\n        if (layStake !== null) {\n            layStakeEl.textContent = '$' + layStake.toFixed(2);\n            liabilityEl.textContent = '$' + liability.toFixed(2);\n\n            profitBackEl.textContent = '$' + profitBack.toFixed(2);\n            profitBackEl.className = 'bonusbet__grid-value ' + (profitBack \u003e= 0 ? 'positive' : 'negative');\n\n            profitLayEl.textContent = '$' + profitLay.toFixed(2);\n            profitLayEl.className = 'bonusbet__grid-value ' + (profitLay \u003e= 0 ? 'positive' : 'negative');\n        } else {\n            layStakeEl.textContent = '-';\n            liabilityEl.textContent = '-';\n            profitBackEl.textContent = '-';\n            profitBackEl.className = 'bonusbet__grid-value';\n            profitLayEl.textContent = '-';\n            profitLayEl.className = 'bonusbet__grid-value';\n        }\n    }\n\n    function resetOutput() {\n        realValueEl.textContent = '-';\n        conversionRateEl.textContent = 'نرخ تبدیل: -';\n        layStakeEl.textContent = '-';\n        liabilityEl.textContent = '-';\n        profitBackEl.textContent = '-';\n        profitBackEl.className = 'bonusbet__grid-value';\n        profitLayEl.textContent = '-';\n        profitLayEl.className = 'bonusbet__grid-value';\n    }\n\n    function resetAll() {\n        amountInput.value = '';\n        backOddsInput.value = '';\n        layOddsInput.value = '';\n        commissionInput.value = '5';\n        typeSelect.selectedIndex = 0;\n        formatSelect.selectedIndex = 0;\n        backOddsInput.classList.remove('invalid');\n        layOddsInput.classList.remove('invalid');\n        updatePlaceholders();\n        resetOutput();\n    }\n\n    function updatePlaceholders() {\n        var fmt = formatSelect.value;\n        if (fmt === 'Fractional') {\n            backOddsInput.placeholder = '3/1';\n            layOddsInput.placeholder = '3/1';\n        } else if (fmt === 'Decimal') {\n            backOddsInput.placeholder = '4.00';\n            layOddsInput.placeholder = '4.10';\n        } else if (fmt === 'American') {\n            backOddsInput.placeholder = '+300';\n            layOddsInput.placeholder = '+310';\n        }\n    }\n\n    formatSelect.addEventListener('change', function() { updatePlaceholders(); calculate(); });\n    amountInput.addEventListener('input', calculate);\n    typeSelect.addEventListener('change', calculate);\n    backOddsInput.addEventListener('input', calculate);\n    layOddsInput.addEventListener('input', calculate);\n    commissionInput.addEventListener('input', calculate);\n    resetBtn.addEventListener('click', resetAll);\n\n    updatePlaceholders();\n})();\n\u003c/script\u003e","title":"ماشین حساب تبدیل شرط‌های پاداشی"},{"content":" ماشین حساب حاشیه (Hold) ضرایب هر دو طرف را وارد کنید فرمت ضرایب اعشاری کسری آمریکایی ضرایب طرف ۱ ضرایب نتیجه ۱ (مثلاً تیم الف یا بیشتر) ضرایب طرف ۲ ضرایب نتیجه ۲ (مثلاً تیم ب یا کمتر) نتایج درصد حاشیه (Hold) % - - احتمال ضمنی (طرف ۱) - احتمال ضمنی (طرف ۲) - ضرایب منصفانه (طرف ۱) - ضرایب منصفانه (طرف ۲) - احتمال بدون حاشیه (طرف ۱) - احتمال بدون حاشیه (طرف ۲) - حاشیه (vig/juice) سود تعبیه‌شده بوکمیکر است. حاشیه کمتر = ارزش بهتر. معمول: 4-5% برای طرف‌ها، 6-8% برای مجموع‌ها. بازنشانی ","permalink":"https://calculators-odds.com/fa/hold-calculator/","summary":"\u003cstyle\u003e\n    .hold {\n        margin: 15px 0;\n        background-color: #1e2328;\n        border-radius: 8px;\n        padding: 25px;\n        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n        color: #e8e8e8;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n    }\n\n    .hold__title {\n        font-size: 24px;\n        font-weight: bold;\n        margin-bottom: 25px;\n        text-align: center;\n    }\n\n    .hold__container {\n        width: 100%;\n        max-width: 700px;\n        display: flex;\n        flex-direction: column;\n        gap: 20px;\n    }\n\n    .hold__section {\n        background: #2d333b;\n        color: #e8e8e8;\n        padding: 20px;\n        border-radius: 8px;\n    }\n\n    .hold__section-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #2196F3;\n        color: #2196F3;\n    }\n\n    .hold__row {\n        display: flex;\n        gap: 15px;\n        margin-bottom: 15px;\n    }\n\n    .hold__row:last-child {\n        margin-bottom: 0;\n    }\n\n    .hold__input-group {\n        display: flex;\n        flex-direction: column;\n        flex: 1;\n        min-width: 140px;\n    }\n\n    .hold__label {\n        font-size: 13px;\n        font-weight: bold;\n        margin-bottom: 6px;\n        color: #e8e8e8;\n    }\n\n    .hold__input, .hold__select {\n        background: rgba(0, 0, 0, 0.3);\n        color: #e8e8e8;\n        padding: 12px;\n        border: 1px solid rgba(255, 255, 255, 0.1);\n        border-radius: 4px;\n        font-size: 16px;\n        width: 100%;\n        box-sizing: border-box;\n        transition: border-color 0.2s;\n    }\n\n    .hold__input:focus, .hold__select:focus {\n        outline: none;\n        border-color: #2196F3;\n    }\n\n    .hold__input::placeholder {\n        color: rgba(232, 232, 232, 0.4);\n    }\n\n    .hold__select {\n        cursor: pointer;\n    }\n\n    .hold__select option {\n        background: #2d333b;\n        color: #e8e8e8;\n    }\n\n    .hold__hint {\n        font-size: 11px;\n        color: rgba(232, 232, 232, 0.5);\n        margin-top: 4px;\n    }\n\n    .hold__output {\n        background: #2d333b;\n        padding: 20px;\n        border-radius: 8px;\n    }\n\n    .hold__output-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #4CAF50;\n        color: #4CAF50;\n    }\n\n    .hold__result-box {\n        background: rgba(76, 175, 80, 0.15);\n        border: 2px solid #4CAF50;\n        border-radius: 8px;\n        padding: 20px;\n        text-align: center;\n        margin-bottom: 20px;\n    }\n\n    .hold__result-box.high-hold {\n        background: rgba(244, 67, 54, 0.15);\n        border-color: #f44336;\n    }\n\n    .hold__result-label {\n        font-size: 14px;\n        margin-bottom: 8px;\n        color: rgba(232, 232, 232, 0.8);\n    }\n\n    .hold__result-value {\n        font-size: 32px;\n        font-weight: bold;\n        color: #4CAF50;\n    }\n\n    .hold__result-box.high-hold .hold__result-value {\n        color: #f44336;\n    }\n\n    .hold__result-hint {\n        font-size: 12px;\n        margin-top: 8px;\n        color: rgba(232, 232, 232, 0.6);\n    }\n\n    .hold__grid {\n        display: grid;\n        grid-template-columns: repeat(2, 1fr);\n        gap: 15px;\n    }\n\n    .hold__grid-item {\n        background: rgba(255, 255, 255, 0.05);\n        padding: 15px;\n        border-radius: 6px;\n        text-align: center;\n    }\n\n    .hold__grid-label {\n        font-size: 12px;\n        color: rgba(232, 232, 232, 0.7);\n        margin-bottom: 8px;\n    }\n\n    .hold__grid-value {\n        font-size: 18px;\n        font-weight: bold;\n    }\n\n    .hold__info {\n        margin-top: 15px;\n        padding: 12px 15px;\n        background: rgba(33, 150, 243, 0.15);\n        border: 1px solid rgba(33, 150, 243, 0.3);\n        border-radius: 4px;\n        font-size: 13px;\n        text-align: center;\n        color: rgba(232, 232, 232, 0.8);\n    }\n\n    .hold__reset {\n        margin-top: 20px;\n        padding: 12px 40px;\n        background-color: rgba(255, 255, 255, 0.1);\n        color: #e8e8e8;\n        border: 1px solid rgba(255, 255, 255, 0.2);\n        border-radius: 4px;\n        font-size: 14px;\n        cursor: pointer;\n        transition: all 0.2s;\n    }\n\n    .hold__reset:hover {\n        background-color: rgba(255, 255, 255, 0.2);\n    }\n\n    .invalid {\n        border: 2px solid #f44336 !important;\n    }\n\n    @media (max-width: 600px) {\n        .hold__row {\n            flex-direction: column;\n        }\n        .hold__grid {\n            grid-template-columns: 1fr;\n        }\n    }\n\u003c/style\u003e\n\n\u003csection class=\"hold\"\u003e\n    \u003cdiv class=\"hold__title\"\u003eماشین حساب حاشیه (Hold)\u003c/div\u003e\n\n    \u003cdiv class=\"hold__container\"\u003e\n        \n        \u003cdiv class=\"hold__section\"\u003e\n            \u003cdiv class=\"hold__section-title\"\u003eضرایب هر دو طرف را وارد کنید\u003c/div\u003e\n            \u003cdiv class=\"hold__row\"\u003e\n                \u003cdiv class=\"hold__input-group\"\u003e\n                    \u003clabel class=\"hold__label\"\u003eفرمت ضرایب\u003c/label\u003e\n                    \u003cselect class=\"hold__select hold__format\"\u003e\n                        \u003coption value=\"Decimal\"\u003eاعشاری\u003c/option\u003e\n                        \u003coption value=\"Fractional\"\u003eکسری\u003c/option\u003e\n                        \u003coption value=\"American\"\u003eآمریکایی\u003c/option\u003e\n                    \u003c/select\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"hold__row\"\u003e\n                \u003cdiv class=\"hold__input-group\"\u003e\n                    \u003clabel class=\"hold__label\"\u003eضرایب طرف ۱\u003c/label\u003e\n                    \u003cinput type=\"text\" class=\"hold__input hold__odds1\" placeholder=\"1.91\" /\u003e\n                    \u003cspan class=\"hold__hint\"\u003eضرایب نتیجه ۱ (مثلاً تیم الف یا بیشتر)\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"hold__input-group\"\u003e\n                    \u003clabel class=\"hold__label\"\u003eضرایب طرف ۲\u003c/label\u003e\n                    \u003cinput type=\"text\" class=\"hold__input hold__odds2\" placeholder=\"1.91\" /\u003e\n                    \u003cspan class=\"hold__hint\"\u003eضرایب نتیجه ۲ (مثلاً تیم ب یا کمتر)\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"hold__output\"\u003e\n            \u003cdiv class=\"hold__output-title\"\u003eنتایج\u003c/div\u003e\n\n            \u003cdiv class=\"hold__result-box hold__hold-box\"\u003e\n                \u003cdiv class=\"hold__result-label\"\u003eدرصد حاشیه (Hold) %\u003c/div\u003e\n                \u003cdiv class=\"hold__result-value hold__hold-value\"\u003e-\u003c/div\u003e\n                \u003cdiv class=\"hold__result-hint hold__hold-hint\"\u003e-\u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"hold__grid\"\u003e\n                \u003cdiv class=\"hold__grid-item\"\u003e\n                    \u003cdiv class=\"hold__grid-label\"\u003eاحتمال ضمنی (طرف ۱)\u003c/div\u003e\n                    \u003cdiv class=\"hold__grid-value hold__ip1\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"hold__grid-item\"\u003e\n                    \u003cdiv class=\"hold__grid-label\"\u003eاحتمال ضمنی (طرف ۲)\u003c/div\u003e\n                    \u003cdiv class=\"hold__grid-value hold__ip2\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"hold__grid-item\"\u003e\n                    \u003cdiv class=\"hold__grid-label\"\u003eضرایب منصفانه (طرف ۱)\u003c/div\u003e\n                    \u003cdiv class=\"hold__grid-value hold__fo1\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"hold__grid-item\"\u003e\n                    \u003cdiv class=\"hold__grid-label\"\u003eضرایب منصفانه (طرف ۲)\u003c/div\u003e\n                    \u003cdiv class=\"hold__grid-value hold__fo2\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"hold__grid-item\"\u003e\n                    \u003cdiv class=\"hold__grid-label\"\u003eاحتمال بدون حاشیه (طرف ۱)\u003c/div\u003e\n                    \u003cdiv class=\"hold__grid-value hold__fp1\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"hold__grid-item\"\u003e\n                    \u003cdiv class=\"hold__grid-label\"\u003eاحتمال بدون حاشیه (طرف ۲)\u003c/div\u003e\n                    \u003cdiv class=\"hold__grid-value hold__fp2\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"hold__info\"\u003e\n                حاشیه (vig/juice) سود تعبیه‌شده بوکمیکر است. حاشیه کمتر = ارزش بهتر. معمول: 4-5% برای طرف‌ها، 6-8% برای مجموع‌ها.\n            \u003c/div\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cbutton class=\"hold__reset\" type=\"button\"\u003eبازنشانی\u003c/button\u003e\n\u003c/section\u003e\n\n\u003cscript\u003e\n(function() {\n    const container = document.currentScript.previousElementSibling;\n\n    const formatSelect = container.querySelector('.hold__format');\n    const odds1Input = container.querySelector('.hold__odds1');\n    const odds2Input = container.querySelector('.hold__odds2');\n\n    const holdBox = container.querySelector('.hold__hold-box');\n    const holdValue = container.querySelector('.hold__hold-value');\n    const holdHint = container.querySelector('.hold__hold-hint');\n    const ip1 = container.querySelector('.hold__ip1');\n    const ip2 = container.querySelector('.hold__ip2');\n    const fo1 = container.querySelector('.hold__fo1');\n    const fo2 = container.querySelector('.hold__fo2');\n    const fp1 = container.querySelector('.hold__fp1');\n    const fp2 = container.querySelector('.hold__fp2');\n    const resetBtn = container.querySelector('.hold__reset');\n\n    function validateFractionalCoefficient(c) { return /^\\d+\\/\\d+$/.test(c); }\n    function validateDecimalCoefficient(c) { return /^\\d+(\\.\\d+)?$/.test(c) \u0026\u0026 parseFloat(c) \u003e 1; }\n    function validateAmericanCoefficient(c) { return /^[-+]?\\d+$/.test(c); }\n\n    function convertFractionToDecimal(f) {\n        var p = f.split('/');\n        if (p.length !== 2) return null;\n        var n = parseFloat(p[0]), d = parseFloat(p[1]);\n        if (isNaN(n) || isNaN(d) || d === 0) return null;\n        return (n / d) + 1;\n    }\n\n    function convertAmericanToDecimal(a) {\n        var v = parseFloat(a);\n        if (isNaN(v)) return null;\n        if (v \u003e 0) return (v / 100) + 1;\n        if (v \u003c 0) return (100 / Math.abs(v)) + 1;\n        return 2;\n    }\n\n    function getDecimal(input) {\n        var fmt = formatSelect.value;\n        var val = input.value.trim();\n        if (fmt === 'Fractional') {\n            if (!validateFractionalCoefficient(val)) return null;\n            return convertFractionToDecimal(val);\n        } else if (fmt === 'Decimal') {\n            if (!validateDecimalCoefficient(val)) return null;\n            return parseFloat(val);\n        } else if (fmt === 'American') {\n            if (!validateAmericanCoefficient(val)) return null;\n            return convertAmericanToDecimal(val);\n        }\n        return null;\n    }\n\n    function calculate() {\n        var dec1 = getDecimal(odds1Input);\n        var dec2 = getDecimal(odds2Input);\n\n        if (dec1 === null || dec1 \u003c= 1) {\n            if (odds1Input.value.trim()) odds1Input.classList.add('invalid');\n            resetOutput(); return;\n        } else { odds1Input.classList.remove('invalid'); }\n\n        if (dec2 === null || dec2 \u003c= 1) {\n            if (odds2Input.value.trim()) odds2Input.classList.add('invalid');\n            resetOutput(); return;\n        } else { odds2Input.classList.remove('invalid'); }\n\n        \n        var prob1 = 1 / dec1;\n        var prob2 = 1 / dec2;\n        var totalProb = prob1 + prob2;\n        var hold = (totalProb - 1) * 100;\n\n        \n        var fairP1 = prob1 / totalProb;\n        var fairP2 = prob2 / totalProb;\n\n        \n        var fairO1 = 1 / fairP1;\n        var fairO2 = 1 / fairP2;\n\n        holdValue.textContent = hold.toFixed(2) + '%';\n        holdBox.classList.toggle('high-hold', hold \u003e 5);\n\n        if (hold \u003c= 3) {\n            holdHint.textContent = 'حاشیه پایین - ارزش خوب';\n        } else if (hold \u003c= 5) {\n            holdHint.textContent = 'حاشیه متوسط';\n        } else if (hold \u003c= 8) {\n            holdHint.textContent = 'حاشیه بالا - ارزش زیر متوسط';\n        } else {\n            holdHint.textContent = 'حاشیه خیلی بالا - ارزش ضعیف';\n        }\n\n        ip1.textContent = (prob1 * 100).toFixed(1) + '%';\n        ip2.textContent = (prob2 * 100).toFixed(1) + '%';\n\n        fp1.textContent = (fairP1 * 100).toFixed(1) + '%';\n        fp2.textContent = (fairP2 * 100).toFixed(1) + '%';\n\n        fo1.textContent = fairO1.toFixed(3);\n        fo2.textContent = fairO2.toFixed(3);\n    }\n\n    function resetOutput() {\n        holdValue.textContent = '-';\n        holdHint.textContent = '-';\n        holdBox.classList.remove('high-hold');\n        ip1.textContent = '-'; ip2.textContent = '-';\n        fo1.textContent = '-'; fo2.textContent = '-';\n        fp1.textContent = '-'; fp2.textContent = '-';\n    }\n\n    function resetAll() {\n        odds1Input.value = ''; odds2Input.value = '';\n        formatSelect.selectedIndex = 0;\n        odds1Input.classList.remove('invalid');\n        odds2Input.classList.remove('invalid');\n        updatePlaceholders();\n        resetOutput();\n    }\n\n    function updatePlaceholders() {\n        var fmt = formatSelect.value;\n        if (fmt === 'Fractional') {\n            odds1Input.placeholder = '10/11';\n            odds2Input.placeholder = '10/11';\n        } else if (fmt === 'Decimal') {\n            odds1Input.placeholder = '1.91';\n            odds2Input.placeholder = '1.91';\n        } else if (fmt === 'American') {\n            odds1Input.placeholder = '-110';\n            odds2Input.placeholder = '-110';\n        }\n    }\n\n    formatSelect.addEventListener('change', function() { updatePlaceholders(); calculate(); });\n    odds1Input.addEventListener('input', calculate);\n    odds2Input.addEventListener('input', calculate);\n    resetBtn.addEventListener('click', resetAll);\n\n    updatePlaceholders();\n})();\n\u003c/script\u003e","title":"ماشین حساب حاشیه سود (Hold)"},{"content":" ماشین حساب میدل فرمت ضرایب اعشاری کسری آمریکایی شرط ۱ خط/اسپرد شرط ۱ اسپرد امتیاز یا مجموع (مثلاً -3.5) ضرایب شرط ۱ ضرایب شرط ۱ (مثلاً اسپرد مورد علاقه) سهم شرط ۱ مبلغ شرط شرط ۲ خط/اسپرد شرط ۲ خط مقابل (مثلاً \u0026#43;6.5) ضرایب شرط ۲ ضرایب شرط ۲ (مثلاً اسپرد برنده احتمالی) سهم شرط ۲ مبلغ شرط نتایج بهترین حالت (میدل موفق) - بدترین حالت (تضمینی) - اندازه میدل - احتمال تخمینی میدل - سود اگر فقط شرط ۱ ببرد - سود اگر فقط شرط ۲ ببرد - میدل شرط‌بندی روی هر دو طرف یک رویداد با خطوط مختلف است و پنجره‌ای ایجاد می‌کند که هر دو شرط می‌توانند ببرند. بازنشانی ","permalink":"https://calculators-odds.com/fa/middle-calculator/","summary":"\u003cstyle\u003e\n    .middle {\n        margin: 15px 0;\n        background-color: #1e2328;\n        border-radius: 8px;\n        padding: 25px;\n        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n        color: #e8e8e8;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n    }\n\n    .middle__title {\n        font-size: 24px;\n        font-weight: bold;\n        margin-bottom: 25px;\n        text-align: center;\n    }\n\n    .middle__container {\n        width: 100%;\n        max-width: 700px;\n        display: flex;\n        flex-direction: column;\n        gap: 20px;\n    }\n\n    .middle__section {\n        background: #2d333b;\n        color: #e8e8e8;\n        padding: 20px;\n        border-radius: 8px;\n    }\n\n    .middle__section-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #2196F3;\n        color: #2196F3;\n    }\n\n    .middle__row {\n        display: flex;\n        gap: 15px;\n        margin-bottom: 15px;\n    }\n\n    .middle__row:last-child {\n        margin-bottom: 0;\n    }\n\n    .middle__input-group {\n        display: flex;\n        flex-direction: column;\n        flex: 1;\n        min-width: 120px;\n    }\n\n    .middle__label {\n        font-size: 13px;\n        font-weight: bold;\n        margin-bottom: 6px;\n        color: #e8e8e8;\n    }\n\n    .middle__input, .middle__select {\n        background: rgba(0, 0, 0, 0.3);\n        color: #e8e8e8;\n        padding: 12px;\n        border: 1px solid rgba(255, 255, 255, 0.1);\n        border-radius: 4px;\n        font-size: 16px;\n        width: 100%;\n        box-sizing: border-box;\n        transition: border-color 0.2s;\n    }\n\n    .middle__input:focus, .middle__select:focus {\n        outline: none;\n        border-color: #2196F3;\n    }\n\n    .middle__input::placeholder {\n        color: rgba(232, 232, 232, 0.4);\n    }\n\n    .middle__select {\n        cursor: pointer;\n    }\n\n    .middle__select option {\n        background: #2d333b;\n        color: #e8e8e8;\n    }\n\n    .middle__hint {\n        font-size: 11px;\n        color: rgba(232, 232, 232, 0.5);\n        margin-top: 4px;\n    }\n\n    .middle__output {\n        background: #2d333b;\n        padding: 20px;\n        border-radius: 8px;\n    }\n\n    .middle__output-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #4CAF50;\n        color: #4CAF50;\n    }\n\n    .middle__result-boxes {\n        display: grid;\n        grid-template-columns: repeat(2, 1fr);\n        gap: 15px;\n        margin-bottom: 20px;\n    }\n\n    .middle__result-box {\n        border-radius: 8px;\n        padding: 15px;\n        text-align: center;\n    }\n\n    .middle__result-box--middle {\n        background: rgba(76, 175, 80, 0.15);\n        border: 2px solid #4CAF50;\n    }\n\n    .middle__result-box--worst {\n        background: rgba(255, 152, 0, 0.15);\n        border: 2px solid #ff9800;\n    }\n\n    .middle__result-box-label {\n        font-size: 12px;\n        margin-bottom: 6px;\n        color: rgba(232, 232, 232, 0.7);\n    }\n\n    .middle__result-box-value {\n        font-size: 24px;\n        font-weight: bold;\n    }\n\n    .middle__result-box--middle .middle__result-box-value {\n        color: #4CAF50;\n    }\n\n    .middle__result-box--worst .middle__result-box-value {\n        color: #ff9800;\n    }\n\n    .middle__grid {\n        display: grid;\n        grid-template-columns: repeat(2, 1fr);\n        gap: 15px;\n    }\n\n    .middle__grid-item {\n        background: rgba(255, 255, 255, 0.05);\n        padding: 15px;\n        border-radius: 6px;\n        text-align: center;\n    }\n\n    .middle__grid-label {\n        font-size: 12px;\n        color: rgba(232, 232, 232, 0.7);\n        margin-bottom: 8px;\n    }\n\n    .middle__grid-value {\n        font-size: 18px;\n        font-weight: bold;\n    }\n\n    .middle__grid-value.positive {\n        color: #4CAF50;\n    }\n\n    .middle__grid-value.negative {\n        color: #f44336;\n    }\n\n    .middle__info {\n        margin-top: 15px;\n        padding: 12px 15px;\n        background: rgba(33, 150, 243, 0.15);\n        border: 1px solid rgba(33, 150, 243, 0.3);\n        border-radius: 4px;\n        font-size: 13px;\n        text-align: center;\n        color: rgba(232, 232, 232, 0.8);\n    }\n\n    .middle__reset {\n        margin-top: 20px;\n        padding: 12px 40px;\n        background-color: rgba(255, 255, 255, 0.1);\n        color: #e8e8e8;\n        border: 1px solid rgba(255, 255, 255, 0.2);\n        border-radius: 4px;\n        font-size: 14px;\n        cursor: pointer;\n        transition: all 0.2s;\n    }\n\n    .middle__reset:hover {\n        background-color: rgba(255, 255, 255, 0.2);\n    }\n\n    .invalid {\n        border: 2px solid #f44336 !important;\n    }\n\n    @media (max-width: 600px) {\n        .middle__row {\n            flex-direction: column;\n        }\n        .middle__result-boxes {\n            grid-template-columns: 1fr;\n        }\n        .middle__grid {\n            grid-template-columns: 1fr;\n        }\n    }\n\u003c/style\u003e\n\n\u003csection class=\"middle\"\u003e\n    \u003cdiv class=\"middle__title\"\u003eماشین حساب میدل\u003c/div\u003e\n\n    \u003cdiv class=\"middle__container\"\u003e\n        \n        \u003cdiv class=\"middle__section\"\u003e\n            \u003cdiv class=\"middle__section-title\"\u003eفرمت ضرایب\u003c/div\u003e\n            \u003cdiv class=\"middle__row\"\u003e\n                \u003cdiv class=\"middle__input-group\"\u003e\n                    \u003cselect class=\"middle__select middle__format\"\u003e\n                        \u003coption value=\"Decimal\"\u003eاعشاری\u003c/option\u003e\n                        \u003coption value=\"Fractional\"\u003eکسری\u003c/option\u003e\n                        \u003coption value=\"American\"\u003eآمریکایی\u003c/option\u003e\n                    \u003c/select\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"middle__section\"\u003e\n            \u003cdiv class=\"middle__section-title\"\u003eشرط ۱\u003c/div\u003e\n            \u003cdiv class=\"middle__row\"\u003e\n                \u003cdiv class=\"middle__input-group\"\u003e\n                    \u003clabel class=\"middle__label\"\u003eخط/اسپرد شرط ۱\u003c/label\u003e\n                    \u003cinput type=\"text\" class=\"middle__input middle__line1\" placeholder=\"-3.5\" /\u003e\n                    \u003cspan class=\"middle__hint\"\u003eاسپرد امتیاز یا مجموع (مثلاً -3.5)\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"middle__input-group\"\u003e\n                    \u003clabel class=\"middle__label\"\u003eضرایب شرط ۱\u003c/label\u003e\n                    \u003cinput type=\"text\" class=\"middle__input middle__odds1\" placeholder=\"1.91\" /\u003e\n                    \u003cspan class=\"middle__hint\"\u003eضرایب شرط ۱ (مثلاً اسپرد مورد علاقه)\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"middle__input-group\"\u003e\n                    \u003clabel class=\"middle__label\"\u003eسهم شرط ۱\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"middle__input middle__stake1\" placeholder=\"100\" min=\"0\" step=\"0.01\" /\u003e\n                    \u003cspan class=\"middle__hint\"\u003eمبلغ شرط\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"middle__section\"\u003e\n            \u003cdiv class=\"middle__section-title\"\u003eشرط ۲\u003c/div\u003e\n            \u003cdiv class=\"middle__row\"\u003e\n                \u003cdiv class=\"middle__input-group\"\u003e\n                    \u003clabel class=\"middle__label\"\u003eخط/اسپرد شرط ۲\u003c/label\u003e\n                    \u003cinput type=\"text\" class=\"middle__input middle__line2\" placeholder=\"+6.5\" /\u003e\n                    \u003cspan class=\"middle__hint\"\u003eخط مقابل (مثلاً \u0026#43;6.5)\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"middle__input-group\"\u003e\n                    \u003clabel class=\"middle__label\"\u003eضرایب شرط ۲\u003c/label\u003e\n                    \u003cinput type=\"text\" class=\"middle__input middle__odds2\" placeholder=\"1.91\" /\u003e\n                    \u003cspan class=\"middle__hint\"\u003eضرایب شرط ۲ (مثلاً اسپرد برنده احتمالی)\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"middle__input-group\"\u003e\n                    \u003clabel class=\"middle__label\"\u003eسهم شرط ۲\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"middle__input middle__stake2\" placeholder=\"100\" min=\"0\" step=\"0.01\" /\u003e\n                    \u003cspan class=\"middle__hint\"\u003eمبلغ شرط\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"middle__output\"\u003e\n            \u003cdiv class=\"middle__output-title\"\u003eنتایج\u003c/div\u003e\n\n            \u003cdiv class=\"middle__result-boxes\"\u003e\n                \u003cdiv class=\"middle__result-box middle__result-box--middle\"\u003e\n                    \u003cdiv class=\"middle__result-box-label\"\u003eبهترین حالت (میدل موفق)\u003c/div\u003e\n                    \u003cdiv class=\"middle__result-box-value middle__best-case\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"middle__result-box middle__result-box--worst\"\u003e\n                    \u003cdiv class=\"middle__result-box-label\"\u003eبدترین حالت (تضمینی)\u003c/div\u003e\n                    \u003cdiv class=\"middle__result-box-value middle__worst-case\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"middle__grid\"\u003e\n                \u003cdiv class=\"middle__grid-item\"\u003e\n                    \u003cdiv class=\"middle__grid-label\"\u003eاندازه میدل\u003c/div\u003e\n                    \u003cdiv class=\"middle__grid-value middle__middle-size\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"middle__grid-item\"\u003e\n                    \u003cdiv class=\"middle__grid-label\"\u003eاحتمال تخمینی میدل\u003c/div\u003e\n                    \u003cdiv class=\"middle__grid-value middle__middle-prob\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"middle__grid-item\"\u003e\n                    \u003cdiv class=\"middle__grid-label\"\u003eسود اگر فقط شرط ۱ ببرد\u003c/div\u003e\n                    \u003cdiv class=\"middle__grid-value middle__profit1\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"middle__grid-item\"\u003e\n                    \u003cdiv class=\"middle__grid-label\"\u003eسود اگر فقط شرط ۲ ببرد\u003c/div\u003e\n                    \u003cdiv class=\"middle__grid-value middle__profit2\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"middle__info\"\u003e\n                میدل شرط‌بندی روی هر دو طرف یک رویداد با خطوط مختلف است و پنجره‌ای ایجاد می‌کند که هر دو شرط می‌توانند ببرند.\n            \u003c/div\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cbutton class=\"middle__reset\" type=\"button\"\u003eبازنشانی\u003c/button\u003e\n\u003c/section\u003e\n\n\u003cscript\u003e\n(function() {\n    const container = document.currentScript.previousElementSibling;\n\n    const formatSelect = container.querySelector('.middle__format');\n    const line1Input = container.querySelector('.middle__line1');\n    const odds1Input = container.querySelector('.middle__odds1');\n    const stake1Input = container.querySelector('.middle__stake1');\n    const line2Input = container.querySelector('.middle__line2');\n    const odds2Input = container.querySelector('.middle__odds2');\n    const stake2Input = container.querySelector('.middle__stake2');\n\n    const bestCaseEl = container.querySelector('.middle__best-case');\n    const worstCaseEl = container.querySelector('.middle__worst-case');\n    const middleSizeEl = container.querySelector('.middle__middle-size');\n    const middleProbEl = container.querySelector('.middle__middle-prob');\n    const profit1El = container.querySelector('.middle__profit1');\n    const profit2El = container.querySelector('.middle__profit2');\n\n    const resetBtn = container.querySelector('.middle__reset');\n\n    function validateFractionalCoefficient(c) { return /^\\d+\\/\\d+$/.test(c); }\n    function validateDecimalCoefficient(c) { return /^\\d+(\\.\\d+)?$/.test(c) \u0026\u0026 parseFloat(c) \u003e 1; }\n    function validateAmericanCoefficient(c) { return /^[-+]?\\d+$/.test(c); }\n\n    function convertFractionToDecimal(f) {\n        var p = f.split('/');\n        if (p.length !== 2) return null;\n        var n = parseFloat(p[0]), d = parseFloat(p[1]);\n        if (isNaN(n) || isNaN(d) || d === 0) return null;\n        return (n / d) + 1;\n    }\n\n    function convertAmericanToDecimal(a) {\n        var v = parseFloat(a);\n        if (isNaN(v)) return null;\n        if (v \u003e 0) return (v / 100) + 1;\n        if (v \u003c 0) return (100 / Math.abs(v)) + 1;\n        return 2;\n    }\n\n    function getDecimal(input) {\n        var fmt = formatSelect.value;\n        var val = input.value.trim();\n        if (fmt === 'Fractional') {\n            if (!validateFractionalCoefficient(val)) return null;\n            return convertFractionToDecimal(val);\n        } else if (fmt === 'Decimal') {\n            if (!validateDecimalCoefficient(val)) return null;\n            return parseFloat(val);\n        } else if (fmt === 'American') {\n            if (!validateAmericanCoefficient(val)) return null;\n            return convertAmericanToDecimal(val);\n        }\n        return null;\n    }\n\n    function calculate() {\n        var dec1 = getDecimal(odds1Input);\n        var dec2 = getDecimal(odds2Input);\n        var stake1 = parseFloat(stake1Input.value);\n        var stake2 = parseFloat(stake2Input.value);\n        var line1 = parseFloat(line1Input.value);\n        var line2 = parseFloat(line2Input.value);\n\n        \n        if (dec1 === null || dec1 \u003c= 1) {\n            if (odds1Input.value.trim()) odds1Input.classList.add('invalid');\n            resetOutput(); return;\n        } else { odds1Input.classList.remove('invalid'); }\n\n        if (dec2 === null || dec2 \u003c= 1) {\n            if (odds2Input.value.trim()) odds2Input.classList.add('invalid');\n            resetOutput(); return;\n        } else { odds2Input.classList.remove('invalid'); }\n\n        if (isNaN(stake1) || stake1 \u003c= 0 || isNaN(stake2) || stake2 \u003c= 0) { resetOutput(); return; }\n        if (isNaN(line1) || isNaN(line2)) { resetOutput(); return; }\n\n        var totalStake = stake1 + stake2;\n\n        \n        var payout1 = stake1 * dec1;\n        var payout2 = stake2 * dec2;\n\n        \n        var profitOnlyBet1 = payout1 - totalStake;\n\n        \n        var profitOnlyBet2 = payout2 - totalStake;\n\n        \n        var profitBothWin = payout1 + payout2 - totalStake;\n\n        \n        \n        \n        var absLine1 = Math.abs(line1);\n        var absLine2 = Math.abs(line2);\n\n        \n        var middleSize;\n        if ((line1 \u003c 0 \u0026\u0026 line2 \u003e 0) || (line1 \u003e 0 \u0026\u0026 line2 \u003c 0)) {\n            \n            middleSize = absLine2 - absLine1;\n        } else {\n            \n            middleSize = Math.abs(line2 - line1);\n        }\n\n        \n        var worstCase = Math.min(profitOnlyBet1, profitOnlyBet2);\n\n        \n        var bestCase = profitBothWin;\n\n        \n        \n        var middleProb = 0;\n        if (middleSize \u003e 0) {\n            middleProb = Math.min(middleSize * 2.75, 95);\n        }\n\n        \n        bestCaseEl.textContent = '$' + bestCase.toFixed(2);\n        worstCaseEl.textContent = '$' + worstCase.toFixed(2);\n\n        middleSizeEl.textContent = middleSize \u003e 0 ? middleSize.toFixed(1) + ' امتیاز' : 'میدلی وجود ندارد';\n\n        if (middleSize \u003e 0) {\n            middleProbEl.textContent = '~' + middleProb.toFixed(1) + '%';\n        } else {\n            middleProbEl.textContent = '0%';\n        }\n\n        profit1El.textContent = '$' + profitOnlyBet1.toFixed(2);\n        profit1El.className = 'middle__grid-value ' + (profitOnlyBet1 \u003e= 0 ? 'positive' : 'negative');\n\n        profit2El.textContent = '$' + profitOnlyBet2.toFixed(2);\n        profit2El.className = 'middle__grid-value ' + (profitOnlyBet2 \u003e= 0 ? 'positive' : 'negative');\n    }\n\n    function resetOutput() {\n        bestCaseEl.textContent = '-';\n        worstCaseEl.textContent = '-';\n        middleSizeEl.textContent = '-';\n        middleProbEl.textContent = '-';\n        profit1El.textContent = '-';\n        profit1El.className = 'middle__grid-value';\n        profit2El.textContent = '-';\n        profit2El.className = 'middle__grid-value';\n    }\n\n    function resetAll() {\n        line1Input.value = ''; odds1Input.value = ''; stake1Input.value = '';\n        line2Input.value = ''; odds2Input.value = ''; stake2Input.value = '';\n        formatSelect.selectedIndex = 0;\n        odds1Input.classList.remove('invalid');\n        odds2Input.classList.remove('invalid');\n        updatePlaceholders();\n        resetOutput();\n    }\n\n    function updatePlaceholders() {\n        var fmt = formatSelect.value;\n        if (fmt === 'Fractional') {\n            odds1Input.placeholder = '10/11';\n            odds2Input.placeholder = '10/11';\n        } else if (fmt === 'Decimal') {\n            odds1Input.placeholder = '1.91';\n            odds2Input.placeholder = '1.91';\n        } else if (fmt === 'American') {\n            odds1Input.placeholder = '-110';\n            odds2Input.placeholder = '-110';\n        }\n    }\n\n    formatSelect.addEventListener('change', function() { updatePlaceholders(); calculate(); });\n    [line1Input, odds1Input, stake1Input, line2Input, odds2Input, stake2Input].forEach(function(el) {\n        el.addEventListener('input', calculate);\n    });\n    resetBtn.addEventListener('click', resetAll);\n\n    updatePlaceholders();\n})();\n\u003c/script\u003e","title":"ماشین حساب میدل"},{"content":" ماشین حساب نرخ برد سابقه شرط‌بندی خود را وارد کنید مجموع شرط‌ها تعداد کل شرط‌های گذاشته شده شرط‌های برنده تعداد شرط‌های برنده میانگین ضرایب (اعشاری) میانگین ضرایب اعشاری شرط‌های شما مجموع مبلغ شرط‌بندی شده مجموع مبلغ شرط‌بندی شده (اختیاری) مجموع مبلغ برگشتی مجموع مبلغ برگشتی (اختیاری) نتایج نرخ برد - - سبس نرخ سربه‌سر - مزیت - نرخ باخت - میانگین سود/زیان هر شرط - سود/زیان خالص - بازگشت سرمایه - نرخ برد درصد شرط‌های برنده شما را نشان می‌دهد. آن را با نرخ سربه‌سر مقایسه کنید تا ببینید آیا مزیتی دارید. بازنشانی ","permalink":"https://calculators-odds.com/fa/strike-rate-calculator/","summary":"\u003cstyle\u003e\n    .strikerate {\n        margin: 15px 0;\n        background-color: #1e2328;\n        border-radius: 8px;\n        padding: 25px;\n        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n        color: #e8e8e8;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n    }\n\n    .strikerate__title {\n        font-size: 24px;\n        font-weight: bold;\n        margin-bottom: 25px;\n        text-align: center;\n    }\n\n    .strikerate__container {\n        width: 100%;\n        max-width: 700px;\n        display: flex;\n        flex-direction: column;\n        gap: 20px;\n    }\n\n    .strikerate__section {\n        background: #2d333b;\n        color: #e8e8e8;\n        padding: 20px;\n        border-radius: 8px;\n    }\n\n    .strikerate__section-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #2196F3;\n        color: #2196F3;\n    }\n\n    .strikerate__row {\n        display: flex;\n        gap: 15px;\n        margin-bottom: 15px;\n    }\n\n    .strikerate__row:last-child {\n        margin-bottom: 0;\n    }\n\n    .strikerate__input-group {\n        display: flex;\n        flex-direction: column;\n        flex: 1;\n        min-width: 140px;\n    }\n\n    .strikerate__label {\n        font-size: 13px;\n        font-weight: bold;\n        margin-bottom: 6px;\n        color: #e8e8e8;\n    }\n\n    .strikerate__input {\n        background: rgba(0, 0, 0, 0.3);\n        color: #e8e8e8;\n        padding: 12px;\n        border: 1px solid rgba(255, 255, 255, 0.1);\n        border-radius: 4px;\n        font-size: 16px;\n        width: 100%;\n        box-sizing: border-box;\n        transition: border-color 0.2s;\n    }\n\n    .strikerate__input:focus {\n        outline: none;\n        border-color: #2196F3;\n    }\n\n    .strikerate__input::placeholder {\n        color: rgba(232, 232, 232, 0.4);\n    }\n\n    .strikerate__hint {\n        font-size: 11px;\n        color: rgba(232, 232, 232, 0.5);\n        margin-top: 4px;\n    }\n\n    .strikerate__output {\n        background: #2d333b;\n        padding: 20px;\n        border-radius: 8px;\n    }\n\n    .strikerate__output-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #4CAF50;\n        color: #4CAF50;\n    }\n\n    .strikerate__result-box {\n        background: rgba(76, 175, 80, 0.15);\n        border: 2px solid #4CAF50;\n        border-radius: 8px;\n        padding: 20px;\n        text-align: center;\n        margin-bottom: 20px;\n    }\n\n    .strikerate__result-box.negative {\n        background: rgba(244, 67, 54, 0.15);\n        border-color: #f44336;\n    }\n\n    .strikerate__result-label {\n        font-size: 14px;\n        margin-bottom: 8px;\n        color: rgba(232, 232, 232, 0.8);\n    }\n\n    .strikerate__result-value {\n        font-size: 32px;\n        font-weight: bold;\n        color: #4CAF50;\n    }\n\n    .strikerate__result-box.negative .strikerate__result-value {\n        color: #f44336;\n    }\n\n    .strikerate__result-sub {\n        font-size: 14px;\n        color: rgba(232, 232, 232, 0.6);\n        margin-top: 6px;\n    }\n\n    .strikerate__grid {\n        display: grid;\n        grid-template-columns: repeat(2, 1fr);\n        gap: 15px;\n    }\n\n    .strikerate__grid-item {\n        background: rgba(255, 255, 255, 0.05);\n        padding: 15px;\n        border-radius: 6px;\n        text-align: center;\n    }\n\n    .strikerate__grid-label {\n        font-size: 12px;\n        color: rgba(232, 232, 232, 0.7);\n        margin-bottom: 8px;\n    }\n\n    .strikerate__grid-value {\n        font-size: 18px;\n        font-weight: bold;\n    }\n\n    .strikerate__grid-value.positive {\n        color: #4CAF50;\n    }\n\n    .strikerate__grid-value.negative {\n        color: #f44336;\n    }\n\n    .strikerate__bar-container {\n        margin-top: 15px;\n        background: rgba(0, 0, 0, 0.3);\n        border-radius: 8px;\n        height: 30px;\n        position: relative;\n        overflow: hidden;\n    }\n\n    .strikerate__bar {\n        height: 100%;\n        border-radius: 8px;\n        transition: width 0.3s ease;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        font-size: 12px;\n        font-weight: bold;\n        color: #fff;\n    }\n\n    .strikerate__bar--win {\n        background: #4CAF50;\n    }\n\n    .strikerate__bar-marker {\n        position: absolute;\n        top: 0;\n        height: 100%;\n        width: 2px;\n        background: #ff9800;\n        z-index: 1;\n    }\n\n    .strikerate__bar-label {\n        position: absolute;\n        top: -18px;\n        font-size: 10px;\n        color: #ff9800;\n        transform: translateX(-50%);\n        white-space: nowrap;\n    }\n\n    .strikerate__info {\n        margin-top: 15px;\n        padding: 12px 15px;\n        background: rgba(33, 150, 243, 0.15);\n        border: 1px solid rgba(33, 150, 243, 0.3);\n        border-radius: 4px;\n        font-size: 13px;\n        text-align: center;\n        color: rgba(232, 232, 232, 0.8);\n    }\n\n    .strikerate__reset {\n        margin-top: 20px;\n        padding: 12px 40px;\n        background-color: rgba(255, 255, 255, 0.1);\n        color: #e8e8e8;\n        border: 1px solid rgba(255, 255, 255, 0.2);\n        border-radius: 4px;\n        font-size: 14px;\n        cursor: pointer;\n        transition: all 0.2s;\n    }\n\n    .strikerate__reset:hover {\n        background-color: rgba(255, 255, 255, 0.2);\n    }\n\n    .invalid {\n        border: 2px solid #f44336 !important;\n    }\n\n    @media (max-width: 600px) {\n        .strikerate__row {\n            flex-direction: column;\n        }\n        .strikerate__grid {\n            grid-template-columns: 1fr;\n        }\n    }\n\u003c/style\u003e\n\n\u003csection class=\"strikerate\"\u003e\n    \u003cdiv class=\"strikerate__title\"\u003eماشین حساب نرخ برد\u003c/div\u003e\n\n    \u003cdiv class=\"strikerate__container\"\u003e\n        \n        \u003cdiv class=\"strikerate__section\"\u003e\n            \u003cdiv class=\"strikerate__section-title\"\u003eسابقه شرط‌بندی خود را وارد کنید\u003c/div\u003e\n            \u003cdiv class=\"strikerate__row\"\u003e\n                \u003cdiv class=\"strikerate__input-group\"\u003e\n                    \u003clabel class=\"strikerate__label\"\u003eمجموع شرط‌ها\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"strikerate__input strikerate__total\" placeholder=\"100\" min=\"1\" step=\"1\" /\u003e\n                    \u003cspan class=\"strikerate__hint\"\u003eتعداد کل شرط‌های گذاشته شده\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"strikerate__input-group\"\u003e\n                    \u003clabel class=\"strikerate__label\"\u003eشرط‌های برنده\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"strikerate__input strikerate__wins\" placeholder=\"55\" min=\"0\" step=\"1\" /\u003e\n                    \u003cspan class=\"strikerate__hint\"\u003eتعداد شرط‌های برنده\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"strikerate__row\"\u003e\n                \u003cdiv class=\"strikerate__input-group\"\u003e\n                    \u003clabel class=\"strikerate__label\"\u003eمیانگین ضرایب (اعشاری)\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"strikerate__input strikerate__avg-odds\" placeholder=\"1.91\" min=\"1.01\" step=\"0.01\" /\u003e\n                    \u003cspan class=\"strikerate__hint\"\u003eمیانگین ضرایب اعشاری شرط‌های شما\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"strikerate__row\"\u003e\n                \u003cdiv class=\"strikerate__input-group\"\u003e\n                    \u003clabel class=\"strikerate__label\"\u003eمجموع مبلغ شرط‌بندی شده\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"strikerate__input strikerate__staked\" placeholder=\"10000\" min=\"0\" step=\"0.01\" /\u003e\n                    \u003cspan class=\"strikerate__hint\"\u003eمجموع مبلغ شرط‌بندی شده (اختیاری)\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"strikerate__input-group\"\u003e\n                    \u003clabel class=\"strikerate__label\"\u003eمجموع مبلغ برگشتی\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"strikerate__input strikerate__returned\" placeholder=\"10500\" min=\"0\" step=\"0.01\" /\u003e\n                    \u003cspan class=\"strikerate__hint\"\u003eمجموع مبلغ برگشتی (اختیاری)\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"strikerate__output\"\u003e\n            \u003cdiv class=\"strikerate__output-title\"\u003eنتایج\u003c/div\u003e\n\n            \u003cdiv class=\"strikerate__result-box strikerate__sr-box\"\u003e\n                \u003cdiv class=\"strikerate__result-label\"\u003eنرخ برد\u003c/div\u003e\n                \u003cdiv class=\"strikerate__result-value strikerate__sr-value\"\u003e-\u003c/div\u003e\n                \u003cdiv class=\"strikerate__result-sub strikerate__sr-sub\"\u003e-\u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"strikerate__bar-container\"\u003e\n                \u003cdiv class=\"strikerate__bar strikerate__bar--win\" style=\"width: 0%\"\u003e\u003c/div\u003e\n                \u003cdiv class=\"strikerate__bar-marker strikerate__be-marker\" style=\"display: none\"\u003e\n                    \u003cspan class=\"strikerate__bar-label\"\u003eسبس\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"strikerate__grid\" style=\"margin-top: 20px;\"\u003e\n                \u003cdiv class=\"strikerate__grid-item\"\u003e\n                    \u003cdiv class=\"strikerate__grid-label\"\u003eنرخ سربه‌سر\u003c/div\u003e\n                    \u003cdiv class=\"strikerate__grid-value strikerate__be-value\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"strikerate__grid-item\"\u003e\n                    \u003cdiv class=\"strikerate__grid-label\"\u003eمزیت\u003c/div\u003e\n                    \u003cdiv class=\"strikerate__grid-value strikerate__edge-value\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"strikerate__grid-item\"\u003e\n                    \u003cdiv class=\"strikerate__grid-label\"\u003eنرخ باخت\u003c/div\u003e\n                    \u003cdiv class=\"strikerate__grid-value strikerate__loss-rate\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"strikerate__grid-item\"\u003e\n                    \u003cdiv class=\"strikerate__grid-label\"\u003eمیانگین سود/زیان هر شرط\u003c/div\u003e\n                    \u003cdiv class=\"strikerate__grid-value strikerate__avg-pl\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"strikerate__grid-item\"\u003e\n                    \u003cdiv class=\"strikerate__grid-label\"\u003eسود/زیان خالص\u003c/div\u003e\n                    \u003cdiv class=\"strikerate__grid-value strikerate__pl-value\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"strikerate__grid-item\"\u003e\n                    \u003cdiv class=\"strikerate__grid-label\"\u003eبازگشت سرمایه\u003c/div\u003e\n                    \u003cdiv class=\"strikerate__grid-value strikerate__roi-value\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"strikerate__info\"\u003e\n                نرخ برد درصد شرط‌های برنده شما را نشان می‌دهد. آن را با نرخ سربه‌سر مقایسه کنید تا ببینید آیا مزیتی دارید.\n            \u003c/div\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cbutton class=\"strikerate__reset\" type=\"button\"\u003eبازنشانی\u003c/button\u003e\n\u003c/section\u003e\n\n\u003cscript\u003e\n(function() {\n    const container = document.currentScript.previousElementSibling;\n\n    const totalInput = container.querySelector('.strikerate__total');\n    const winsInput = container.querySelector('.strikerate__wins');\n    const avgOddsInput = container.querySelector('.strikerate__avg-odds');\n    const stakedInput = container.querySelector('.strikerate__staked');\n    const returnedInput = container.querySelector('.strikerate__returned');\n\n    const srBox = container.querySelector('.strikerate__sr-box');\n    const srValue = container.querySelector('.strikerate__sr-value');\n    const srSub = container.querySelector('.strikerate__sr-sub');\n    const beValue = container.querySelector('.strikerate__be-value');\n    const edgeValue = container.querySelector('.strikerate__edge-value');\n    const lossRate = container.querySelector('.strikerate__loss-rate');\n    const avgPl = container.querySelector('.strikerate__avg-pl');\n    const plValue = container.querySelector('.strikerate__pl-value');\n    const roiValue = container.querySelector('.strikerate__roi-value');\n\n    const winBar = container.querySelector('.strikerate__bar--win');\n    const beMarker = container.querySelector('.strikerate__be-marker');\n\n    const resetBtn = container.querySelector('.strikerate__reset');\n\n    function calculate() {\n        var total = parseInt(totalInput.value);\n        var wins = parseInt(winsInput.value);\n        var avgOdds = parseFloat(avgOddsInput.value);\n        var staked = parseFloat(stakedInput.value);\n        var returned = parseFloat(returnedInput.value);\n\n        if (isNaN(total) || total \u003c= 0) { resetOutput(); return; }\n        if (isNaN(wins) || wins \u003c 0) { resetOutput(); return; }\n\n        if (wins \u003e total) {\n            winsInput.classList.add('invalid');\n            resetOutput(); return;\n        } else {\n            winsInput.classList.remove('invalid');\n        }\n\n        var sr = (wins / total) * 100;\n\n        srValue.textContent = sr.toFixed(1) + '%';\n        srSub.textContent = wins + ' / ' + total;\n\n        lossRate.textContent = (100 - sr).toFixed(1) + '%';\n\n        \n        winBar.style.width = sr + '%';\n        winBar.textContent = sr \u003e= 10 ? sr.toFixed(0) + '%' : '';\n\n        \n        if (!isNaN(avgOdds) \u0026\u0026 avgOdds \u003e 1) {\n            var breakEven = (1 / avgOdds) * 100;\n            beValue.textContent = breakEven.toFixed(1) + '%';\n\n            var edge = sr - breakEven;\n            edgeValue.textContent = (edge \u003e= 0 ? '+' : '') + edge.toFixed(1) + '%';\n            edgeValue.className = 'strikerate__grid-value ' + (edge \u003e= 0 ? 'positive' : 'negative');\n\n            srBox.classList.toggle('negative', edge \u003c 0);\n\n            \n            beMarker.style.display = 'block';\n            beMarker.style.left = Math.min(breakEven, 100) + '%';\n        } else {\n            beValue.textContent = '-';\n            edgeValue.textContent = '-';\n            edgeValue.className = 'strikerate__grid-value';\n            beMarker.style.display = 'none';\n            srBox.classList.remove('negative');\n        }\n\n        \n        if (!isNaN(staked) \u0026\u0026 staked \u003e 0 \u0026\u0026 !isNaN(returned)) {\n            var pl = returned - staked;\n            var roi = (pl / staked) * 100;\n            var avgPlPerBet = pl / total;\n\n            plValue.textContent = (pl \u003e= 0 ? '+$' : '-$') + Math.abs(pl).toFixed(2);\n            plValue.className = 'strikerate__grid-value ' + (pl \u003e= 0 ? 'positive' : 'negative');\n\n            roiValue.textContent = (roi \u003e= 0 ? '+' : '') + roi.toFixed(2) + '%';\n            roiValue.className = 'strikerate__grid-value ' + (roi \u003e= 0 ? 'positive' : 'negative');\n\n            avgPl.textContent = (avgPlPerBet \u003e= 0 ? '+$' : '-$') + Math.abs(avgPlPerBet).toFixed(2);\n            avgPl.className = 'strikerate__grid-value ' + (avgPlPerBet \u003e= 0 ? 'positive' : 'negative');\n        } else {\n            plValue.textContent = '-';\n            plValue.className = 'strikerate__grid-value';\n            roiValue.textContent = '-';\n            roiValue.className = 'strikerate__grid-value';\n            avgPl.textContent = '-';\n            avgPl.className = 'strikerate__grid-value';\n        }\n    }\n\n    function resetOutput() {\n        srValue.textContent = '-'; srSub.textContent = '-';\n        beValue.textContent = '-'; edgeValue.textContent = '-';\n        edgeValue.className = 'strikerate__grid-value';\n        lossRate.textContent = '-'; avgPl.textContent = '-';\n        avgPl.className = 'strikerate__grid-value';\n        plValue.textContent = '-'; plValue.className = 'strikerate__grid-value';\n        roiValue.textContent = '-'; roiValue.className = 'strikerate__grid-value';\n        winBar.style.width = '0%'; winBar.textContent = '';\n        beMarker.style.display = 'none';\n        srBox.classList.remove('negative');\n    }\n\n    function resetAll() {\n        totalInput.value = ''; winsInput.value = '';\n        avgOddsInput.value = ''; stakedInput.value = ''; returnedInput.value = '';\n        winsInput.classList.remove('invalid');\n        resetOutput();\n    }\n\n    [totalInput, winsInput, avgOddsInput, stakedInput, returnedInput].forEach(function(el) {\n        el.addEventListener('input', calculate);\n    });\n    resetBtn.addEventListener('click', resetAll);\n})();\n\u003c/script\u003e","title":"ماشین حساب نرخ برد"},{"content":" اعشاری کسری آمریکایی احتمال ضمنی - بازنشانی کنید ","permalink":"https://calculators-odds.com/fa/odds-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"converter_0\"\u003e\n    \u003cdiv class=\"calc-wrap__grid calc-wrap__grid--3\"\u003e\n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eاعشاری\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-decimal\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eکسری\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-fractional\" type=\"text\" placeholder=\"3/2\" /\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eآمریکایی\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-american\" type=\"text\" placeholder=\"+150\" /\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eاحتمال ضمنی\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-probability\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003eبازنشانی کنید\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    const root = document.getElementById('converter_0');\n    const decEl = root.querySelector('.js-decimal');\n    const fracEl = root.querySelector('.js-fractional');\n    const amerEl = root.querySelector('.js-american');\n    const probEl = root.querySelector('.js-probability');\n    const resetBtn = root.querySelector('.js-reset');\n    let updating = false;\n\n    function fromDecimal(d, source) {\n        if (source !== decEl) decEl.value = d.toFixed(2);\n        if (source !== fracEl) fracEl.value = convertDecimalToFractional(d) || '-';\n        if (source !== amerEl) amerEl.value = convertDecimalToAmerican(d) || '-';\n        probEl.textContent = (100 / d).toFixed(2) + '%';\n    }\n\n    function clearOthers(source) {\n        if (source !== decEl) decEl.value = '';\n        if (source !== fracEl) fracEl.value = '';\n        if (source !== amerEl) amerEl.value = '';\n        probEl.textContent = '-';\n    }\n\n    decEl.addEventListener('input', function() {\n        if (updating) return; updating = true;\n        const v = decEl.value.trim();\n        if (!v) { clearOthers(decEl); updating = false; return; }\n        const d = parseFloat(v);\n        if (!isNaN(d) \u0026\u0026 d \u003e 1) {\n            decEl.classList.remove('invalid');\n            fromDecimal(d, decEl);\n        } else {\n            decEl.classList.add('invalid');\n            clearOthers(decEl);\n        }\n        updating = false;\n    });\n\n    fracEl.addEventListener('input', function() {\n        if (updating) return; updating = true;\n        const v = fracEl.value.trim();\n        if (!v) { clearOthers(fracEl); updating = false; return; }\n        if (validateFractionalCoefficient(v)) {\n            fracEl.classList.remove('invalid');\n            fromDecimal(convertFractionToDecimal(v), fracEl);\n        } else {\n            fracEl.classList.add('invalid');\n            clearOthers(fracEl);\n        }\n        updating = false;\n    });\n\n    amerEl.addEventListener('input', function() {\n        if (updating) return; updating = true;\n        const v = amerEl.value.trim();\n        if (!v) { clearOthers(amerEl); updating = false; return; }\n        if (validateAmericanCoefficient(v)) {\n            amerEl.classList.remove('invalid');\n            fromDecimal(convertAmericanToDecimal(v), amerEl);\n        } else {\n            amerEl.classList.add('invalid');\n            clearOthers(amerEl);\n        }\n        updating = false;\n    });\n\n    resetBtn.addEventListener('click', function() {\n        decEl.value = ''; fracEl.value = ''; amerEl.value = '';\n        [decEl, fracEl, amerEl].forEach(el =\u003e el.classList.remove('invalid'));\n        probEl.textContent = '-';\n    });\n})();\n\u003c/script\u003e","title":"تبدیل ضرایب - اعشاری/کسری/آمریکایی"},{"content":" فرمت ضرایب آمریکایی اعشاری کسری خط کل بیش از شانس تحت شانس سهام بیش از پرداخت - تحت پرداخت - بیش از پروب ضمنی - تحت پروب ضمنی - کتابساز Vig - بازنشانی کنید ","permalink":"https://calculators-odds.com/fa/over-under-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"overunder_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eفرمت ضرایب\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"American\"\u003eآمریکایی\u003c/option\u003e\n            \u003coption value=\"Decimal\"\u003eاعشاری\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003eکسری\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eخط کل\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-line\" type=\"text\" placeholder=\"2.5\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eبیش از شانس\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-overodds\" type=\"text\" placeholder=\"-110\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eتحت شانس\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-underodds\" type=\"text\" placeholder=\"-110\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eسهام\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"100\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eبیش از پرداخت\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-overpayout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eتحت پرداخت\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-underpayout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eبیش از پروب ضمنی\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-overprob\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eتحت پروب ضمنی\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-underprob\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eکتابساز Vig\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-breakeven\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003eبازنشانی کنید\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var root = document.getElementById('overunder_0');\n    var formatEl = root.querySelector('.js-format');\n    var lineEl = root.querySelector('.js-line');\n    var overOddsEl = root.querySelector('.js-overodds');\n    var underOddsEl = root.querySelector('.js-underodds');\n    var stakeEl = root.querySelector('.js-stake');\n    var overPayoutEl = root.querySelector('.js-overpayout');\n    var underPayoutEl = root.querySelector('.js-underpayout');\n    var overProbEl = root.querySelector('.js-overprob');\n    var underProbEl = root.querySelector('.js-underprob');\n    var breakevenEl = root.querySelector('.js-breakeven');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var format = formatEl.value;\n        var overDec = convertToDecimal(overOddsEl.value.trim(), format);\n        var underDec = convertToDecimal(underOddsEl.value.trim(), format);\n        var stake = parseFloat(stakeEl.value);\n\n        if (!overDec) overOddsEl.classList.toggle('invalid', !!overOddsEl.value.trim());\n        else overOddsEl.classList.remove('invalid');\n        if (!underDec) underOddsEl.classList.toggle('invalid', !!underOddsEl.value.trim());\n        else underOddsEl.classList.remove('invalid');\n\n        if (overDec) {\n            var overProb = (1 / overDec) * 100;\n            overProbEl.textContent = overProb.toFixed(1) + '%';\n            if (stake \u0026\u0026 stake \u003e 0) {\n                overPayoutEl.textContent = formatNumber(stake * overDec);\n            } else { overPayoutEl.textContent = '-'; }\n        } else { overProbEl.textContent = '-'; overPayoutEl.textContent = '-'; }\n\n        if (underDec) {\n            var underProb = (1 / underDec) * 100;\n            underProbEl.textContent = underProb.toFixed(1) + '%';\n            if (stake \u0026\u0026 stake \u003e 0) {\n                underPayoutEl.textContent = formatNumber(stake * underDec);\n            } else { underPayoutEl.textContent = '-'; }\n        } else { underProbEl.textContent = '-'; underPayoutEl.textContent = '-'; }\n\n        if (overDec \u0026\u0026 underDec) {\n            var margin = ((1/overDec + 1/underDec) - 1) * 100;\n            breakevenEl.textContent = margin.toFixed(2) + '% vig';\n        } else { breakevenEl.textContent = '-'; }\n    }\n\n    formatEl.addEventListener('change', function() {\n        var ph = getOddsPlaceholder(formatEl.value);\n        overOddsEl.placeholder = ph; underOddsEl.placeholder = ph;\n        update();\n    });\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        lineEl.value=''; overOddsEl.value=''; underOddsEl.value=''; stakeEl.value='';\n        formatEl.selectedIndex=0; overOddsEl.classList.remove('invalid'); underOddsEl.classList.remove('invalid');\n        overPayoutEl.textContent='-'; underPayoutEl.textContent='-'; overProbEl.textContent='-'; underProbEl.textContent='-'; breakevenEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"ماشین‌حساب اور/آندر (Totals)"},{"content":" ماشین حساب بدون ویگ مرحله 1: فرمت ضرایب را انتخاب کنید اعشاری کسری آمریکایی مرحله 2: ضرایب بوکمیکر را وارد کنید نتیجه 1 شانس کتابساز پروب ضمنی — پروب منصفانه — شانس منصفانه (بدون وجه) — نتیجه 2 شانس کتابساز پروب ضمنی — پروب منصفانه — شانس منصفانه (بدون وجه) — + نتیجه را اضافه کنید ضرایب اعشاری وارد کنید (مثال 2.50) نتایج حاشیه کل — ویگ/جوس — بالای 100% = حاشیه سود بوکمیکر بازنشانی ","permalink":"https://calculators-odds.com/fa/no-vig-calculator/","summary":"\u003cstyle\u003e\n.novig {\n    margin: 15px 0;\n    background-color: #1e2328;\n    border-radius: 8px;\n    padding: 20px;\n    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);\n    color: #e8e8e8;\n}\n\n.novig__title {\n    font-size: 22px;\n    font-weight: bold;\n    text-align: center;\n    margin-bottom: 25px;\n    color: #e8e8e8;\n}\n\n.novig__section {\n    background: #2d333b;\n    border-radius: 6px;\n    padding: 15px;\n    margin-bottom: 15px;\n}\n\n.novig__section-title {\n    font-size: 14px;\n    font-weight: 600;\n    color: #4CAF50;\n    margin-bottom: 15px;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n}\n\n.novig__format-selector {\n    display: flex;\n    gap: 8px;\n    flex-wrap: wrap;\n}\n\n.novig__format-btn {\n    flex: 1;\n    min-width: 100px;\n    padding: 10px 15px;\n    border: 2px solid #4CAF50;\n    background: transparent;\n    color: #e8e8e8;\n    cursor: pointer;\n    border-radius: 4px;\n    font-size: 14px;\n    font-weight: 500;\n    transition: all 0.2s;\n}\n\n.novig__format-btn:hover {\n    background: rgba(76, 175, 80, 0.2);\n}\n\n.novig__format-btn.active {\n    background: #4CAF50;\n    color: #fff;\n}\n\n.novig__outcomes-list {\n    display: flex;\n    flex-direction: column;\n    gap: 10px;\n}\n\n.novig__outcome {\n    background: rgba(0, 0, 0, 0.2);\n    border-radius: 4px;\n    padding: 12px;\n}\n\n.novig__outcome-header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    margin-bottom: 10px;\n}\n\n.novig__outcome-label {\n    font-weight: 600;\n    font-size: 14px;\n    color: #4CAF50;\n}\n\n.novig__outcome-remove {\n    padding: 4px 8px;\n    background: #f44336;\n    color: #fff;\n    border: none;\n    border-radius: 3px;\n    cursor: pointer;\n    font-size: 11px;\n    transition: background 0.2s;\n}\n\n.novig__outcome-remove:hover {\n    background: #d32f2f;\n}\n\n.novig__outcome-grid {\n    display: grid;\n    grid-template-columns: 1fr 1fr 1fr 1fr;\n    gap: 10px;\n    align-items: end;\n}\n\n.novig__field {\n    display: flex;\n    flex-direction: column;\n    gap: 4px;\n}\n\n.novig__field-label {\n    font-size: 10px;\n    color: rgba(232, 232, 232, 0.6);\n    text-transform: uppercase;\n}\n\n.novig__input {\n    width: 100%;\n    padding: 10px;\n    border: 1px solid rgba(255, 255, 255, 0.1);\n    border-radius: 4px;\n    font-size: 14px;\n    background: #2d333b;\n    color: #e8e8e8;\n    transition: border-color 0.2s;\n    box-sizing: border-box;\n}\n\n.novig__input:focus {\n    outline: none;\n    border-color: #4CAF50;\n}\n\n.novig__input::placeholder {\n    color: rgba(232, 232, 232, 0.4);\n}\n\n.novig__input.invalid {\n    border-color: #f44336;\n}\n\n.novig__value {\n    padding: 10px;\n    background: rgba(0, 0, 0, 0.3);\n    border-radius: 4px;\n    font-size: 14px;\n    font-weight: 600;\n    text-align: center;\n}\n\n.novig__value.implied {\n    color: rgba(232, 232, 232, 0.8);\n}\n\n.novig__value.fair-prob {\n    color: #4CAF50;\n}\n\n.novig__value.fair-odds {\n    color: #2196F3;\n}\n\n.novig__add-btn {\n    width: 100%;\n    padding: 10px;\n    margin-top: 10px;\n    background: transparent;\n    border: 2px dashed rgba(255, 255, 255, 0.3);\n    color: #e8e8e8;\n    border-radius: 4px;\n    cursor: pointer;\n    font-size: 14px;\n    transition: all 0.2s;\n}\n\n.novig__add-btn:hover {\n    border-color: #4CAF50;\n    color: #4CAF50;\n}\n\n.novig__hint {\n    font-size: 11px;\n    color: rgba(232, 232, 232, 0.5);\n    margin-top: 8px;\n}\n\n.novig__summary-grid {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 15px;\n}\n\n.novig__summary-box {\n    background: rgba(0, 0, 0, 0.2);\n    padding: 15px;\n    border-radius: 4px;\n    text-align: center;\n}\n\n.novig__summary-label {\n    font-size: 11px;\n    color: rgba(232, 232, 232, 0.7);\n    text-transform: uppercase;\n    margin-bottom: 5px;\n}\n\n.novig__summary-value {\n    font-size: 24px;\n    font-weight: 700;\n    color: #e8e8e8;\n}\n\n.novig__summary-value.good {\n    color: #4CAF50;\n}\n\n.novig__summary-value.bad {\n    color: #f44336;\n}\n\n.novig__summary-value.warning {\n    color: #ff9800;\n}\n\n.novig__buttons {\n    display: flex;\n    justify-content: center;\n    margin-top: 15px;\n}\n\n.novig__btn {\n    padding: 10px 30px;\n    border: none;\n    border-radius: 4px;\n    font-size: 14px;\n    font-weight: 500;\n    cursor: pointer;\n    transition: all 0.2s;\n}\n\n.novig__btn--secondary {\n    background: #666;\n    color: #fff;\n}\n\n.novig__btn--secondary:hover {\n    background: #555;\n}\n\n@media (max-width: 600px) {\n    .novig__outcome-grid {\n        grid-template-columns: 1fr 1fr;\n    }\n\n    .novig__summary-grid {\n        grid-template-columns: 1fr;\n    }\n\n    .novig__format-btn {\n        min-width: 80px;\n    }\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"novig\"\u003e\n    \u003cdiv class=\"novig__title\"\u003eماشین حساب بدون ویگ\u003c/div\u003e\n\n    \u003cdiv class=\"novig__section\"\u003e\n        \u003cdiv class=\"novig__section-title\"\u003eمرحله 1: فرمت ضرایب را انتخاب کنید\u003c/div\u003e\n        \u003cdiv class=\"novig__format-selector\"\u003e\n            \u003cbutton type=\"button\" class=\"novig__format-btn active\" data-type=\"decimal\"\u003eاعشاری\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"novig__format-btn\" data-type=\"fractional\"\u003eکسری\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"novig__format-btn\" data-type=\"american\"\u003eآمریکایی\u003c/button\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"novig__section\"\u003e\n        \u003cdiv class=\"novig__section-title\"\u003eمرحله 2: ضرایب بوکمیکر را وارد کنید\u003c/div\u003e\n        \u003cdiv class=\"novig__outcomes-list\"\u003e\n            \u003cdiv class=\"novig__outcome\" data-index=\"0\"\u003e\n                \u003cdiv class=\"novig__outcome-header\"\u003e\n                    \u003cspan class=\"novig__outcome-label\"\u003eنتیجه 1\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"novig__outcome-grid\"\u003e\n                    \u003cdiv class=\"novig__field\"\u003e\n                        \u003cspan class=\"novig__field-label\"\u003eشانس کتابساز\u003c/span\u003e\n                        \u003cinput type=\"text\" class=\"novig__input novig__odds-input\" data-index=\"0\" placeholder=\"2.50\"\u003e\n                    \u003c/div\u003e\n                    \u003cdiv class=\"novig__field\"\u003e\n                        \u003cspan class=\"novig__field-label\"\u003eپروب ضمنی\u003c/span\u003e\n                        \u003cdiv class=\"novig__value implied\" data-index=\"0\"\u003e—\u003c/div\u003e\n                    \u003c/div\u003e\n                    \u003cdiv class=\"novig__field\"\u003e\n                        \u003cspan class=\"novig__field-label\"\u003eپروب منصفانه\u003c/span\u003e\n                        \u003cdiv class=\"novig__value fair-prob\" data-index=\"0\"\u003e—\u003c/div\u003e\n                    \u003c/div\u003e\n                    \u003cdiv class=\"novig__field\"\u003e\n                        \u003cspan class=\"novig__field-label\"\u003eشانس منصفانه (بدون وجه)\u003c/span\u003e\n                        \u003cdiv class=\"novig__value fair-odds\" data-index=\"0\"\u003e—\u003c/div\u003e\n                    \u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"novig__outcome\" data-index=\"1\"\u003e\n                \u003cdiv class=\"novig__outcome-header\"\u003e\n                    \u003cspan class=\"novig__outcome-label\"\u003eنتیجه 2\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"novig__outcome-grid\"\u003e\n                    \u003cdiv class=\"novig__field\"\u003e\n                        \u003cspan class=\"novig__field-label\"\u003eشانس کتابساز\u003c/span\u003e\n                        \u003cinput type=\"text\" class=\"novig__input novig__odds-input\" data-index=\"1\" placeholder=\"2.50\"\u003e\n                    \u003c/div\u003e\n                    \u003cdiv class=\"novig__field\"\u003e\n                        \u003cspan class=\"novig__field-label\"\u003eپروب ضمنی\u003c/span\u003e\n                        \u003cdiv class=\"novig__value implied\" data-index=\"1\"\u003e—\u003c/div\u003e\n                    \u003c/div\u003e\n                    \u003cdiv class=\"novig__field\"\u003e\n                        \u003cspan class=\"novig__field-label\"\u003eپروب منصفانه\u003c/span\u003e\n                        \u003cdiv class=\"novig__value fair-prob\" data-index=\"1\"\u003e—\u003c/div\u003e\n                    \u003c/div\u003e\n                    \u003cdiv class=\"novig__field\"\u003e\n                        \u003cspan class=\"novig__field-label\"\u003eشانس منصفانه (بدون وجه)\u003c/span\u003e\n                        \u003cdiv class=\"novig__value fair-odds\" data-index=\"1\"\u003e—\u003c/div\u003e\n                    \u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n        \u003cbutton type=\"button\" class=\"novig__add-btn\"\u003e+ نتیجه را اضافه کنید\u003c/button\u003e\n        \u003cdiv class=\"novig__hint novig__hint-format\"\u003eضرایب اعشاری وارد کنید (مثال 2.50)\u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"novig__section\"\u003e\n        \u003cdiv class=\"novig__section-title\"\u003eنتایج\u003c/div\u003e\n        \u003cdiv class=\"novig__summary-grid\"\u003e\n            \u003cdiv class=\"novig__summary-box\"\u003e\n                \u003cdiv class=\"novig__summary-label\"\u003eحاشیه کل\u003c/div\u003e\n                \u003cdiv class=\"novig__summary-value\" id=\"novigTotalImplied\"\u003e—\u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"novig__summary-box\"\u003e\n                \u003cdiv class=\"novig__summary-label\"\u003eویگ/جوس\u003c/div\u003e\n                \u003cdiv class=\"novig__summary-value\" id=\"novigVig\"\u003e—\u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"novig__hint\"\u003eبالای 100% = حاشیه سود بوکمیکر\u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"novig__buttons\"\u003e\n        \u003cbutton type=\"button\" class=\"novig__btn novig__btn--secondary\" id=\"novigReset\"\u003eبازنشانی\u003c/button\u003e\n    \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    const container = document.currentScript.previousElementSibling;\n    let currentOddsType = 'decimal';\n    let outcomeCount = 2;\n    const maxOutcomes = 10;\n\n    const placeholders = {\n        decimal: '2.50',\n        fractional: '3\\/2',\n        american: '\\u002b150'\n    };\n\n    const hints = {\n        decimal: 'ضرایب اعشاری وارد کنید (مثال 2.50)',\n        fractional: 'ضرایب کسری وارد کنید (مثال 3\\/2)',\n        american: 'ضرایب آمریکایی وارد کنید (مثال \\u002b150 یا -200)'\n    };\n\n    const outcomeLabels = [\n        'نتیجه 1',\n        'نتیجه 2',\n        'نتیجه 3 (تساوی)',\n        'Outcome 4',\n        'Outcome 5',\n        'Outcome 6',\n        'Outcome 7',\n        'Outcome 8',\n        'Outcome 9',\n        'Outcome 10'\n    ];\n\n    function validateDecimal(value) {\n        return /^\\d+(\\.\\d+)?$/.test(value) \u0026\u0026 parseFloat(value) \u003e 1;\n    }\n\n    function validateFractional(value) {\n        return /^\\d+\\/\\d+$/.test(value);\n    }\n\n    function validateAmerican(value) {\n        const cleaned = value.replace(/^\\+/, '');\n        return /^-?\\d+$/.test(cleaned) \u0026\u0026 (Math.abs(parseInt(cleaned)) \u003e= 100);\n    }\n\n    function fractionalToDecimal(fraction) {\n        const parts = fraction.split('/');\n        return (parseFloat(parts[0]) / parseFloat(parts[1])) + 1;\n    }\n\n    function americanToDecimal(american) {\n        const value = parseInt(american.replace(/^\\+/, ''));\n        return value \u003e 0 ? (value / 100) + 1 : (100 / Math.abs(value)) + 1;\n    }\n\n    function decimalToFractional(decimal) {\n        const profit = decimal - 1;\n        const gcd = (a, b) =\u003e b ? gcd(b, a % b) : a;\n        const precision = 100;\n        const numerator = Math.round(profit * precision);\n        const denominator = precision;\n        const divisor = gcd(numerator, denominator);\n        return `${numerator / divisor}/${denominator / divisor}`;\n    }\n\n    function decimalToAmerican(decimal) {\n        if (decimal \u003e= 2) {\n            return '+' + Math.round((decimal - 1) * 100);\n        }\n        return Math.round(-100 / (decimal - 1)).toString();\n    }\n\n    function getDecimalOdds(value) {\n        if (!value) return null;\n\n        if (currentOddsType === 'decimal') {\n            return validateDecimal(value) ? parseFloat(value) : null;\n        } else if (currentOddsType === 'fractional') {\n            return validateFractional(value) ? fractionalToDecimal(value) : null;\n        } else if (currentOddsType === 'american') {\n            return validateAmerican(value) ? americanToDecimal(value) : null;\n        }\n        return null;\n    }\n\n    function formatOdds(decimalOdds) {\n        if (currentOddsType === 'decimal') {\n            return decimalOdds.toFixed(2);\n        } else if (currentOddsType === 'fractional') {\n            return decimalToFractional(decimalOdds);\n        } else if (currentOddsType === 'american') {\n            return decimalToAmerican(decimalOdds);\n        }\n        return decimalOdds.toFixed(2);\n    }\n\n    function updatePlaceholders() {\n        container.querySelectorAll('.novig__odds-input').forEach(input =\u003e {\n            input.placeholder = placeholders[currentOddsType];\n        });\n\n        const hintEl = container.querySelector('.novig__hint-format');\n        if (hintEl) {\n            hintEl.textContent = hints[currentOddsType];\n        }\n    }\n\n    function addOutcome() {\n        if (outcomeCount \u003e= maxOutcomes) return;\n\n        const outcomesList = container.querySelector('.novig__outcomes-list');\n\n        const newOutcome = document.createElement('div');\n        newOutcome.className = 'novig__outcome';\n        newOutcome.dataset.index = outcomeCount;\n        newOutcome.innerHTML = `\n            \u003cdiv class=\"novig__outcome-header\"\u003e\n                \u003cspan class=\"novig__outcome-label\"\u003e${outcomeLabels[outcomeCount] || 'Outcome ' + (outcomeCount + 1)}\u003c/span\u003e\n                \u003cbutton type=\"button\" class=\"novig__outcome-remove\"\u003e✕\u003c/button\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"novig__outcome-grid\"\u003e\n                \u003cdiv class=\"novig__field\"\u003e\n                    \u003cspan class=\"novig__field-label\"\u003eشانس کتابساز\u003c/span\u003e\n                    \u003cinput type=\"text\" class=\"novig__input novig__odds-input\" data-index=\"${outcomeCount}\" placeholder=\"${placeholders[currentOddsType]}\"\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"novig__field\"\u003e\n                    \u003cspan class=\"novig__field-label\"\u003eپروب ضمنی\u003c/span\u003e\n                    \u003cdiv class=\"novig__value implied\" data-index=\"${outcomeCount}\"\u003e—\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"novig__field\"\u003e\n                    \u003cspan class=\"novig__field-label\"\u003eپروب منصفانه\u003c/span\u003e\n                    \u003cdiv class=\"novig__value fair-prob\" data-index=\"${outcomeCount}\"\u003e—\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"novig__field\"\u003e\n                    \u003cspan class=\"novig__field-label\"\u003eشانس منصفانه (بدون وجه)\u003c/span\u003e\n                    \u003cdiv class=\"novig__value fair-odds\" data-index=\"${outcomeCount}\"\u003e—\u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        `;\n\n        outcomesList.appendChild(newOutcome);\n        outcomeCount++;\n\n        newOutcome.querySelector('.novig__odds-input').addEventListener('input', calculate);\n        newOutcome.querySelector('.novig__outcome-remove').addEventListener('click', function() {\n            removeOutcome(newOutcome);\n        });\n\n        if (outcomeCount \u003e= maxOutcomes) {\n            container.querySelector('.novig__add-btn').style.display = 'none';\n        }\n\n        calculate();\n    }\n\n    function removeOutcome(outcomeEl) {\n        if (outcomeCount \u003c= 2) return;\n\n        outcomeEl.remove();\n        outcomeCount--;\n\n        const outcomes = container.querySelectorAll('.novig__outcome');\n        outcomes.forEach((outcome, index) =\u003e {\n            outcome.dataset.index = index;\n            outcome.querySelector('.novig__odds-input').dataset.index = index;\n            outcome.querySelectorAll('.novig__value').forEach(v =\u003e v.dataset.index = index);\n        });\n\n        if (outcomeCount \u003c maxOutcomes) {\n            container.querySelector('.novig__add-btn').style.display = 'block';\n        }\n\n        calculate();\n    }\n\n    function calculate() {\n        const inputs = container.querySelectorAll('.novig__odds-input');\n        const impliedCells = container.querySelectorAll('.novig__value.implied');\n        const fairProbCells = container.querySelectorAll('.novig__value.fair-prob');\n        const fairOddsCells = container.querySelectorAll('.novig__value.fair-odds');\n\n        let totalImplied = 0;\n        const impliedProbs = [];\n\n        inputs.forEach((input, index) =\u003e {\n            const value = input.value.trim();\n            const decOdds = getDecimalOdds(value);\n\n            if (value \u0026\u0026 !decOdds) {\n                input.classList.add('invalid');\n                impliedCells[index].textContent = '—';\n                impliedProbs.push(null);\n            } else if (decOdds) {\n                input.classList.remove('invalid');\n                const implied = (1 / decOdds) * 100;\n                totalImplied += implied;\n                impliedProbs.push(implied);\n                impliedCells[index].textContent = implied.toFixed(1) + '%';\n            } else {\n                input.classList.remove('invalid');\n                impliedCells[index].textContent = '—';\n                impliedProbs.push(null);\n            }\n        });\n\n        const totalImpliedEl = container.querySelector('#novigTotalImplied');\n        const vigEl = container.querySelector('#novigVig');\n\n        if (totalImplied \u003e 0) {\n            totalImpliedEl.textContent = totalImplied.toFixed(2) + '%';\n\n            const vig = totalImplied - 100;\n            vigEl.textContent = (vig \u003e= 0 ? '+' : '') + vig.toFixed(2) + '%';\n\n            if (vig \u003e 10) {\n                vigEl.className = 'novig__summary-value bad';\n                totalImpliedEl.className = 'novig__summary-value bad';\n            } else if (vig \u003e 5) {\n                vigEl.className = 'novig__summary-value warning';\n                totalImpliedEl.className = 'novig__summary-value warning';\n            } else if (vig \u003e 0) {\n                vigEl.className = 'novig__summary-value';\n                totalImpliedEl.className = 'novig__summary-value';\n            } else {\n                vigEl.className = 'novig__summary-value good';\n                totalImpliedEl.className = 'novig__summary-value good';\n            }\n\n            impliedProbs.forEach((implied, index) =\u003e {\n                if (implied !== null) {\n                    const fairProb = (implied / totalImplied) * 100;\n                    fairProbCells[index].textContent = fairProb.toFixed(1) + '%';\n\n                    const fairDecimalOdds = 100 / fairProb;\n                    fairOddsCells[index].textContent = formatOdds(fairDecimalOdds);\n                } else {\n                    fairProbCells[index].textContent = '—';\n                    fairOddsCells[index].textContent = '—';\n                }\n            });\n        } else {\n            totalImpliedEl.textContent = '—';\n            totalImpliedEl.className = 'novig__summary-value';\n            vigEl.textContent = '—';\n            vigEl.className = 'novig__summary-value';\n\n            fairProbCells.forEach(cell =\u003e cell.textContent = '—');\n            fairOddsCells.forEach(cell =\u003e cell.textContent = '—');\n        }\n    }\n\n    function reset() {\n        const outcomes = container.querySelectorAll('.novig__outcome');\n        outcomes.forEach((outcome, index) =\u003e {\n            if (index \u003e= 2) outcome.remove();\n        });\n        outcomeCount = 2;\n\n        container.querySelectorAll('.novig__odds-input').forEach(input =\u003e {\n            input.value = '';\n            input.classList.remove('invalid');\n        });\n\n        container.querySelectorAll('.novig__value.implied').forEach(cell =\u003e cell.textContent = '—');\n        container.querySelectorAll('.novig__value.fair-prob').forEach(cell =\u003e cell.textContent = '—');\n        container.querySelectorAll('.novig__value.fair-odds').forEach(cell =\u003e cell.textContent = '—');\n\n        container.querySelector('#novigTotalImplied').textContent = '—';\n        container.querySelector('#novigTotalImplied').className = 'novig__summary-value';\n        container.querySelector('#novigVig').textContent = '—';\n        container.querySelector('#novigVig').className = 'novig__summary-value';\n\n        container.querySelector('.novig__add-btn').style.display = 'block';\n    }\n\n    \n    container.querySelectorAll('.novig__format-btn').forEach(btn =\u003e {\n        btn.addEventListener('click', function() {\n            container.querySelectorAll('.novig__format-btn').forEach(b =\u003e b.classList.remove('active'));\n            this.classList.add('active');\n            currentOddsType = this.dataset.type;\n            updatePlaceholders();\n            calculate();\n        });\n    });\n\n    container.querySelectorAll('.novig__odds-input').forEach(input =\u003e {\n        input.addEventListener('input', calculate);\n    });\n\n    container.querySelector('.novig__add-btn').addEventListener('click', addOutcome);\n    container.querySelector('#novigReset').addEventListener('click', reset);\n})();\n\u003c/script\u003e","title":"ماشین‌حساب بدون ویگ (No-Vig)"},{"content":" فرمت ضرایب اعشاری کسری آمریکایی انتخاب 1 انتخاب 2 سهام کل سهام - هر دو برنده - فقط سل 1 برنده می شود - فقط سل 2 برنده می شود - هر دو باخت - بازنشانی کنید ","permalink":"https://calculators-odds.com/fa/reverse-bet-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"reverse_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eفرمت ضرایب\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003eاعشاری\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003eکسری\u003c/option\u003e\n            \u003coption value=\"American\"\u003eآمریکایی\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 1\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-odds1\" type=\"text\" placeholder=\"2.50\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 2\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-odds2\" type=\"text\" placeholder=\"3.00\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eسهام\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"100\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eکل سهام\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-totalstake\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eهر دو برنده\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-bothwin\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eفقط سل 1 برنده می شود\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-sel1wins\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eفقط سل 2 برنده می شود\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-sel2wins\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eهر دو باخت\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-bothlose\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003eبازنشانی کنید\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var root = document.getElementById('reverse_0');\n    var formatEl = root.querySelector('.js-format');\n    var odds1El = root.querySelector('.js-odds1');\n    var odds2El = root.querySelector('.js-odds2');\n    var stakeEl = root.querySelector('.js-stake');\n    var totalStakeEl = root.querySelector('.js-totalstake');\n    var bothWinEl = root.querySelector('.js-bothwin');\n    var sel1WinsEl = root.querySelector('.js-sel1wins');\n    var sel2WinsEl = root.querySelector('.js-sel2wins');\n    var bothLoseEl = root.querySelector('.js-bothlose');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var format = formatEl.value;\n        var d1 = convertToDecimal(odds1El.value.trim(), format);\n        var d2 = convertToDecimal(odds2El.value.trim(), format);\n        var stake = parseFloat(stakeEl.value);\n\n        if (!d1) odds1El.classList.toggle('invalid', !!odds1El.value.trim());\n        else odds1El.classList.remove('invalid');\n        if (!d2) odds2El.classList.toggle('invalid', !!odds2El.value.trim());\n        else odds2El.classList.remove('invalid');\n\n        if (!d1 || !d2 || !stake || stake \u003c= 0) {\n            totalStakeEl.textContent='-'; bothWinEl.textContent='-'; sel1WinsEl.textContent='-'; sel2WinsEl.textContent='-'; bothLoseEl.textContent='-'; return;\n        }\n\n        \n        \n        \n        var totalStake = stake * 2;\n        totalStakeEl.textContent = formatNumber(totalStake);\n\n        \n        var payout1 = stake * d1; \n        var ifBet1 = payout1 * d2; \n        var payout2 = stake * d2;\n        var ifBet2 = payout2 * d1;\n        \n        var bothWinProfit = (stake * d1 * d2) + (stake * d2 * d1) - totalStake;\n        \n        \n        var win1Only = (stake * d1 - stake) + (0 - stake); \n        var win2Only = (0 - stake) + (stake * d2 - stake); \n        var bothWin = (stake * d1 - stake) + (stake * d2 - stake); \n        var bothLose = -totalStake;\n\n        bothWinEl.textContent = formatNumber(bothWin);\n        sel1WinsEl.textContent = formatNumber(win1Only);\n        sel2WinsEl.textContent = formatNumber(win2Only);\n        bothLoseEl.textContent = formatNumber(bothLose);\n    }\n\n    formatEl.addEventListener('change', function() {\n        odds1El.placeholder = getOddsPlaceholder(formatEl.value);\n        odds2El.placeholder = getOddsPlaceholder(formatEl.value);\n        update();\n    });\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        odds1El.value=''; odds2El.value=''; stakeEl.value='';\n        formatEl.selectedIndex=0; odds1El.classList.remove('invalid'); odds2El.classList.remove('invalid');\n        totalStakeEl.textContent='-'; bothWinEl.textContent='-'; sel1WinsEl.textContent='-'; sel2WinsEl.textContent='-'; bothLoseEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"ماشین‌حساب شرط ریورس"},{"content":" خط اصلی شانس اصلی (آمریکایی) اقدام خرید امتیاز امتیاز فروش امتیاز 0.5 1 1.5 2 سهام خط جدید - شانس های جدید - پرداخت - سود - بازنشانی کنید ","permalink":"https://calculators-odds.com/fa/half-point-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"halfpoint_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eخط اصلی\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-line\" type=\"text\" placeholder=\"-3\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eشانس اصلی (آمریکایی)\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"-110\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eاقدام\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-action\"\u003e\n            \u003coption value=\"buy\"\u003eخرید امتیاز\u003c/option\u003e\n            \u003coption value=\"sell\"\u003eامتیاز فروش\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eامتیاز\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-points\"\u003e\n            \u003coption value=\"0.5\"\u003e0.5\u003c/option\u003e\n            \u003coption value=\"1\"\u003e1\u003c/option\u003e\n            \u003coption value=\"1.5\"\u003e1.5\u003c/option\u003e\n            \u003coption value=\"2\"\u003e2\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eسهام\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"100\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eخط جدید\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-newline\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eشانس های جدید\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-newodds\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eپرداخت\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eسود\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003eبازنشانی کنید\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var root = document.getElementById('halfpoint_0');\n    var lineEl = root.querySelector('.js-line');\n    var oddsEl = root.querySelector('.js-odds');\n    var actionEl = root.querySelector('.js-action');\n    var pointsEl = root.querySelector('.js-points');\n    var stakeEl = root.querySelector('.js-stake');\n    var newLineEl = root.querySelector('.js-newline');\n    var newOddsEl = root.querySelector('.js-newodds');\n    var payoutEl = root.querySelector('.js-payout');\n    var profitEl = root.querySelector('.js-profit');\n    var resetBtn = root.querySelector('.js-reset');\n\n    \n    var COST_PER_HALF = 10; \n\n    function update() {\n        var line = parseFloat(lineEl.value);\n        var oddsVal = parseInt(oddsEl.value);\n        var action = actionEl.value;\n        var points = parseFloat(pointsEl.value);\n        var stake = parseFloat(stakeEl.value);\n\n        if (isNaN(line) || isNaN(oddsVal) || oddsVal === 0) {\n            newLineEl.textContent='-'; newOddsEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-'; return;\n        }\n\n        var halfPoints = points / 0.5;\n        var newLine, adjustedOdds;\n\n        if (action === 'buy') {\n            \n            newLine = line + points;\n            adjustedOdds = oddsVal - (halfPoints * COST_PER_HALF);\n        } else {\n            \n            newLine = line - points;\n            adjustedOdds = oddsVal + (halfPoints * COST_PER_HALF);\n        }\n\n        var newLineStr = newLine \u003e= 0 ? '+' + newLine : '' + newLine;\n        var newOddsStr = adjustedOdds \u003e= 0 ? '+' + adjustedOdds : '' + adjustedOdds;\n        newLineEl.textContent = newLineStr;\n        newOddsEl.textContent = newOddsStr;\n\n        if (!stake || stake \u003c= 0) { payoutEl.textContent='-'; profitEl.textContent='-'; return; }\n\n        \n        var dec;\n        if (adjustedOdds \u003e 0) dec = (adjustedOdds / 100) + 1;\n        else dec = (100 / Math.abs(adjustedOdds)) + 1;\n\n        var payout = stake * dec;\n        payoutEl.textContent = formatNumber(payout);\n        profitEl.textContent = formatNumber(payout - stake);\n    }\n\n    root.addEventListener('input', update);\n    actionEl.addEventListener('change', update);\n    pointsEl.addEventListener('change', update);\n    resetBtn.addEventListener('click', function() {\n        lineEl.value=''; oddsEl.value=''; stakeEl.value='';\n        actionEl.selectedIndex=0; pointsEl.selectedIndex=0;\n        newLineEl.textContent='-'; newOddsEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"ماشین‌حساب نیم‌پوینت - خرید/فروش امتیاز"},{"content":" ماشین حساب هر راه مرحله 1: جزئیات شرط را وارد کنید فرمت ضرایب کسری اعشاری آمریکایی فرمت ضرایب برای ورود شانس برد کسری: 10/1 | اعشاری: 11.00 | آمریکایی: \u0026#43;1000 سهام در هر قسمت (E/W) مبلغ در هر بخش — کل شرط = 2× این مقدار مرحله 2: شرایط جایگاه و قانون 4 شرایط مکان 1/4 ضرایب 1/5 ضرایب 1/3 ضرایب 1/2 ضرایب کسری از ضرایب برد برای شرط جایگاه تعداد مکان ها 2 جایگاه 3 جایگاه 4 جایگاه 5 جایگاه 6 جایگاه تعداد جایگاه‌های پرداختی Rule 4 Deduction خیر بله کسر برای عدم شرکت قانون 4 برد 0p 5p 10p 15p 20p 25p 30p 35p 40p 45p 50p 55p 60p 65p 70p 75p قانون 4 جایگاه 0p 5p 10p 15p 20p 25p 30p 35p 40p 45p 50p 55p 60p 65p 70p 75p مرحله 3: نتیجه را انتخاب کنید برنده می شود مکان ها (نه برنده) باخت نتیجه را انتخاب کنید: برد = هر دو شرط پرداخت می‌شوند، جایگاه = فقط جایگاه پرداخت می‌شود، باخت = هیچ نتایج مجموع مبلغ - ضرایب جایگاه - برنده بازگشت - بازگشت مکان - بازگشت کل / سود - شرط هر طرف = شرط برد \u0026#43; شرط جایگاه با کسری از ضرایب برد. شرط کل دو برابر می‌شود. بازنشانی ","permalink":"https://calculators-odds.com/fa/each-way-calculator/","summary":"\u003cstyle\u003e\n    .eachway {\n        margin: 15px 0;\n        background-color: #1e2328;\n        border-radius: 8px;\n        padding: 25px;\n        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n        color: #e8e8e8;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n    }\n\n    .eachway__title {\n        font-size: 24px;\n        font-weight: bold;\n        margin-bottom: 25px;\n        text-align: center;\n    }\n\n    .eachway__container {\n        width: 100%;\n        max-width: 700px;\n        display: flex;\n        flex-direction: column;\n        gap: 20px;\n    }\n\n    .eachway__section {\n        background: #2d333b;\n        color: #e8e8e8;\n        padding: 20px;\n        border-radius: 8px;\n    }\n\n    .eachway__section-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #4CAF50;\n        color: #4CAF50;\n    }\n\n    .eachway__row {\n        display: flex;\n        gap: 15px;\n        margin-bottom: 15px;\n        flex-wrap: wrap;\n    }\n\n    .eachway__row:last-child {\n        margin-bottom: 0;\n    }\n\n    .eachway__input-group {\n        display: flex;\n        flex-direction: column;\n        flex: 1;\n        min-width: 120px;\n    }\n\n    .eachway__label {\n        font-size: 13px;\n        font-weight: bold;\n        margin-bottom: 6px;\n        color: #e8e8e8;\n    }\n\n    .eachway__input, .eachway__select {\n        background: rgba(0, 0, 0, 0.3);\n        color: #e8e8e8;\n        padding: 12px;\n        border: 1px solid rgba(255, 255, 255, 0.1);\n        border-radius: 4px;\n        font-size: 16px;\n        width: 100%;\n        box-sizing: border-box;\n        transition: border-color 0.2s;\n    }\n\n    .eachway__input:focus, .eachway__select:focus {\n        outline: none;\n        border-color: #4CAF50;\n    }\n\n    .eachway__input::placeholder {\n        color: rgba(232, 232, 232, 0.4);\n    }\n\n    .eachway__select {\n        cursor: pointer;\n    }\n\n    .eachway__select option {\n        background: #2d333b;\n        color: #e8e8e8;\n    }\n\n    .eachway__hint {\n        font-size: 11px;\n        color: rgba(232, 232, 232, 0.5);\n        margin-top: 4px;\n    }\n\n    .eachway__rule4-row {\n        display: flex;\n        align-items: flex-start;\n        gap: 15px;\n        flex-wrap: wrap;\n    }\n\n    .eachway__rule4-controls {\n        display: none;\n        gap: 15px;\n        flex: 1;\n    }\n\n    .eachway__rule4-controls.active {\n        display: flex;\n    }\n\n    .eachway__outcome-tabs {\n        display: flex;\n        gap: 8px;\n    }\n\n    .eachway__outcome-tab {\n        flex: 1;\n        padding: 14px;\n        border: 2px solid #4CAF50;\n        background: transparent;\n        color: #e8e8e8;\n        border-radius: 4px;\n        cursor: pointer;\n        font-size: 14px;\n        font-weight: bold;\n        transition: all 0.2s;\n    }\n\n    .eachway__outcome-tab:hover {\n        background: rgba(76, 175, 80, 0.2);\n    }\n\n    .eachway__outcome-tab.active {\n        background: #4CAF50;\n        color: #fff;\n    }\n\n    .eachway__outcome-tab.lose {\n        border-color: #f44336;\n    }\n\n    .eachway__outcome-tab.lose:hover {\n        background: rgba(244, 67, 54, 0.2);\n    }\n\n    .eachway__outcome-tab.lose.active {\n        background: #f44336;\n    }\n\n    .eachway__outcome-hint {\n        margin-top: 10px;\n        font-size: 11px;\n        color: rgba(232, 232, 232, 0.5);\n        text-align: center;\n    }\n\n    .eachway__output-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #4CAF50;\n        color: #4CAF50;\n    }\n\n    .eachway__output-grid {\n        display: grid;\n        grid-template-columns: repeat(2, 1fr);\n        gap: 15px;\n    }\n\n    .eachway__output-item {\n        text-align: center;\n        padding: 15px;\n        background: rgba(255, 255, 255, 0.05);\n        border-radius: 6px;\n    }\n\n    .eachway__output-item.full-width {\n        grid-column: span 2;\n    }\n\n    .eachway__output-label {\n        font-size: 12px;\n        color: rgba(232, 232, 232, 0.7);\n        margin-bottom: 8px;\n    }\n\n    .eachway__output-value {\n        font-size: 20px;\n        font-weight: bold;\n    }\n\n    .eachway__output-value.positive {\n        color: #4CAF50;\n    }\n\n    .eachway__output-value.negative {\n        color: #f44336;\n    }\n\n    .eachway__profit-box {\n        margin-top: 15px;\n        padding: 20px;\n        background: rgba(76, 175, 80, 0.15);\n        border: 2px solid #4CAF50;\n        border-radius: 8px;\n        text-align: center;\n    }\n\n    .eachway__profit-box.loss {\n        background: rgba(244, 67, 54, 0.15);\n        border-color: #f44336;\n    }\n\n    .eachway__profit-label {\n        font-size: 14px;\n        margin-bottom: 8px;\n        color: rgba(232, 232, 232, 0.8);\n    }\n\n    .eachway__profit-value {\n        font-size: 28px;\n        font-weight: bold;\n        color: #4CAF50;\n    }\n\n    .eachway__profit-box.loss .eachway__profit-value {\n        color: #f44336;\n    }\n\n    .eachway__info {\n        margin-top: 15px;\n        padding: 12px 15px;\n        background: rgba(33, 150, 243, 0.15);\n        border: 1px solid rgba(33, 150, 243, 0.3);\n        border-radius: 4px;\n        font-size: 13px;\n        text-align: center;\n        color: rgba(232, 232, 232, 0.8);\n    }\n\n    .eachway__reset {\n        margin-top: 20px;\n        padding: 12px 40px;\n        background-color: rgba(255, 255, 255, 0.1);\n        color: #e8e8e8;\n        border: 1px solid rgba(255, 255, 255, 0.2);\n        border-radius: 4px;\n        font-size: 14px;\n        cursor: pointer;\n        transition: all 0.2s;\n        align-self: center;\n    }\n\n    .eachway__reset:hover {\n        background-color: rgba(255, 255, 255, 0.2);\n    }\n\n    .invalid {\n        border: 2px solid #f44336 !important;\n    }\n\n    @media (max-width: 600px) {\n        .eachway__row {\n            flex-direction: column;\n        }\n        .eachway__output-grid {\n            grid-template-columns: 1fr;\n        }\n        .eachway__output-item.full-width {\n            grid-column: span 1;\n        }\n        .eachway__outcome-tabs {\n            flex-direction: column;\n        }\n        .eachway__rule4-controls {\n            flex-direction: column;\n            width: 100%;\n        }\n    }\n\u003c/style\u003e\n\n\u003csection class=\"eachway\"\u003e\n    \u003cdiv class=\"eachway__title\"\u003eماشین حساب هر راه\u003c/div\u003e\n\n    \u003cdiv class=\"eachway__container\"\u003e\n        \n        \u003cdiv class=\"eachway__section\"\u003e\n            \u003cdiv class=\"eachway__section-title\"\u003eمرحله 1: جزئیات شرط را وارد کنید\u003c/div\u003e\n            \u003cdiv class=\"eachway__row\"\u003e\n                \u003cdiv class=\"eachway__input-group\"\u003e\n                    \u003clabel class=\"eachway__label\"\u003eفرمت ضرایب\u003c/label\u003e\n                    \u003cselect class=\"eachway__select eachway__odds-type\"\u003e\n                        \u003coption value=\"Fractional\"\u003eکسری\u003c/option\u003e\n                        \u003coption value=\"Decimal\"\u003eاعشاری\u003c/option\u003e\n                        \u003coption value=\"American\"\u003eآمریکایی\u003c/option\u003e\n                    \u003c/select\u003e\n                    \u003cspan class=\"eachway__hint\"\u003eفرمت ضرایب برای ورود\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"eachway__input-group\"\u003e\n                    \u003clabel class=\"eachway__label\"\u003eشانس برد\u003c/label\u003e\n                    \u003cinput type=\"text\" class=\"eachway__input eachway__odds\" placeholder=\"10/1\" /\u003e\n                    \u003cspan class=\"eachway__hint eachway__odds-hint\"\u003eکسری: 10/1 | اعشاری: 11.00 | آمریکایی: \u0026#43;1000\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"eachway__row\"\u003e\n                \u003cdiv class=\"eachway__input-group\"\u003e\n                    \u003clabel class=\"eachway__label\"\u003eسهام در هر قسمت (E/W)\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"eachway__input eachway__stake\" placeholder=\"5.00\" min=\"0\" step=\"0.01\" /\u003e\n                    \u003cspan class=\"eachway__hint\"\u003eمبلغ در هر بخش — کل شرط = 2× این مقدار\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"eachway__section\"\u003e\n            \u003cdiv class=\"eachway__section-title\"\u003eمرحله 2: شرایط جایگاه و قانون 4\u003c/div\u003e\n            \u003cdiv class=\"eachway__row\"\u003e\n                \u003cdiv class=\"eachway__input-group\"\u003e\n                    \u003clabel class=\"eachway__label\"\u003eشرایط مکان\u003c/label\u003e\n                    \u003cselect class=\"eachway__select eachway__place-terms\"\u003e\n                        \u003coption value=\"0.25\"\u003e1/4 ضرایب\u003c/option\u003e\n                        \u003coption value=\"0.2\"\u003e1/5 ضرایب\u003c/option\u003e\n                        \u003coption value=\"0.333\"\u003e1/3 ضرایب\u003c/option\u003e\n                        \u003coption value=\"0.5\"\u003e1/2 ضرایب\u003c/option\u003e\n                    \u003c/select\u003e\n                    \u003cspan class=\"eachway__hint\"\u003eکسری از ضرایب برد برای شرط جایگاه\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"eachway__input-group\"\u003e\n                    \u003clabel class=\"eachway__label\"\u003eتعداد مکان ها\u003c/label\u003e\n                    \u003cselect class=\"eachway__select eachway__places\"\u003e\n                        \u003coption value=\"2\"\u003e2 جایگاه\u003c/option\u003e\n                        \u003coption value=\"3\" selected\u003e3 جایگاه\u003c/option\u003e\n                        \u003coption value=\"4\"\u003e4 جایگاه\u003c/option\u003e\n                        \u003coption value=\"5\"\u003e5 جایگاه\u003c/option\u003e\n                        \u003coption value=\"6\"\u003e6 جایگاه\u003c/option\u003e\n                    \u003c/select\u003e\n                    \u003cspan class=\"eachway__hint\"\u003eتعداد جایگاه‌های پرداختی\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"eachway__row eachway__rule4-row\"\u003e\n                \u003cdiv class=\"eachway__input-group\" style=\"flex: 0 0 auto; min-width: 100px;\"\u003e\n                    \u003clabel class=\"eachway__label\"\u003eRule 4 Deduction\u003c/label\u003e\n                    \u003cselect class=\"eachway__select eachway__rule4-toggle\"\u003e\n                        \u003coption value=\"no\"\u003eخیر\u003c/option\u003e\n                        \u003coption value=\"yes\"\u003eبله\u003c/option\u003e\n                    \u003c/select\u003e\n                    \u003cspan class=\"eachway__hint\"\u003eکسر برای عدم شرکت\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"eachway__rule4-controls\"\u003e\n                    \u003cdiv class=\"eachway__input-group\"\u003e\n                        \u003clabel class=\"eachway__label\"\u003eقانون 4 برد\u003c/label\u003e\n                        \u003cselect class=\"eachway__select eachway__rule4-win\"\u003e\n                            \u003coption value=\"0\"\u003e0p\u003c/option\u003e\n                            \u003coption value=\"5\"\u003e5p\u003c/option\u003e\n                            \u003coption value=\"10\"\u003e10p\u003c/option\u003e\n                            \u003coption value=\"15\"\u003e15p\u003c/option\u003e\n                            \u003coption value=\"20\"\u003e20p\u003c/option\u003e\n                            \u003coption value=\"25\"\u003e25p\u003c/option\u003e\n                            \u003coption value=\"30\"\u003e30p\u003c/option\u003e\n                            \u003coption value=\"35\"\u003e35p\u003c/option\u003e\n                            \u003coption value=\"40\"\u003e40p\u003c/option\u003e\n                            \u003coption value=\"45\"\u003e45p\u003c/option\u003e\n                            \u003coption value=\"50\"\u003e50p\u003c/option\u003e\n                            \u003coption value=\"55\"\u003e55p\u003c/option\u003e\n                            \u003coption value=\"60\"\u003e60p\u003c/option\u003e\n                            \u003coption value=\"65\"\u003e65p\u003c/option\u003e\n                            \u003coption value=\"70\"\u003e70p\u003c/option\u003e\n                            \u003coption value=\"75\"\u003e75p\u003c/option\u003e\n                        \u003c/select\u003e\n                    \u003c/div\u003e\n                    \u003cdiv class=\"eachway__input-group\"\u003e\n                        \u003clabel class=\"eachway__label\"\u003eقانون 4 جایگاه\u003c/label\u003e\n                        \u003cselect class=\"eachway__select eachway__rule4-place\"\u003e\n                            \u003coption value=\"0\"\u003e0p\u003c/option\u003e\n                            \u003coption value=\"5\"\u003e5p\u003c/option\u003e\n                            \u003coption value=\"10\"\u003e10p\u003c/option\u003e\n                            \u003coption value=\"15\"\u003e15p\u003c/option\u003e\n                            \u003coption value=\"20\"\u003e20p\u003c/option\u003e\n                            \u003coption value=\"25\"\u003e25p\u003c/option\u003e\n                            \u003coption value=\"30\"\u003e30p\u003c/option\u003e\n                            \u003coption value=\"35\"\u003e35p\u003c/option\u003e\n                            \u003coption value=\"40\"\u003e40p\u003c/option\u003e\n                            \u003coption value=\"45\"\u003e45p\u003c/option\u003e\n                            \u003coption value=\"50\"\u003e50p\u003c/option\u003e\n                            \u003coption value=\"55\"\u003e55p\u003c/option\u003e\n                            \u003coption value=\"60\"\u003e60p\u003c/option\u003e\n                            \u003coption value=\"65\"\u003e65p\u003c/option\u003e\n                            \u003coption value=\"70\"\u003e70p\u003c/option\u003e\n                            \u003coption value=\"75\"\u003e75p\u003c/option\u003e\n                        \u003c/select\u003e\n                    \u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"eachway__section\"\u003e\n            \u003cdiv class=\"eachway__section-title\"\u003eمرحله 3: نتیجه را انتخاب کنید\u003c/div\u003e\n            \u003cdiv class=\"eachway__outcome-tabs\"\u003e\n                \u003cbutton type=\"button\" class=\"eachway__outcome-tab active\" data-outcome=\"win\"\u003eبرنده می شود\u003c/button\u003e\n                \u003cbutton type=\"button\" class=\"eachway__outcome-tab\" data-outcome=\"place\"\u003eمکان ها (نه برنده)\u003c/button\u003e\n                \u003cbutton type=\"button\" class=\"eachway__outcome-tab lose\" data-outcome=\"lose\"\u003eباخت\u003c/button\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"eachway__outcome-hint\"\u003eنتیجه را انتخاب کنید: برد = هر دو شرط پرداخت می‌شوند، جایگاه = فقط جایگاه پرداخت می‌شود، باخت = هیچ\u003c/div\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"eachway__section\"\u003e\n            \u003cdiv class=\"eachway__output-title\"\u003eنتایج\u003c/div\u003e\n            \u003cdiv class=\"eachway__output-grid\"\u003e\n                \u003cdiv class=\"eachway__output-item\"\u003e\n                    \u003cdiv class=\"eachway__output-label\"\u003eمجموع مبلغ\u003c/div\u003e\n                    \u003cdiv class=\"eachway__output-value eachway__total-stake\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"eachway__output-item\"\u003e\n                    \u003cdiv class=\"eachway__output-label\"\u003eضرایب جایگاه\u003c/div\u003e\n                    \u003cdiv class=\"eachway__output-value eachway__place-odds\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"eachway__output-item\"\u003e\n                    \u003cdiv class=\"eachway__output-label\"\u003eبرنده بازگشت\u003c/div\u003e\n                    \u003cdiv class=\"eachway__output-value eachway__win-return\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"eachway__output-item\"\u003e\n                    \u003cdiv class=\"eachway__output-label\"\u003eبازگشت مکان\u003c/div\u003e\n                    \u003cdiv class=\"eachway__output-value eachway__place-return\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"eachway__profit-box\"\u003e\n                \u003cdiv class=\"eachway__profit-label\"\u003eبازگشت کل / سود\u003c/div\u003e\n                \u003cdiv class=\"eachway__profit-value\"\u003e-\u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"eachway__info\"\u003e\n                شرط هر طرف = شرط برد \u0026#43; شرط جایگاه با کسری از ضرایب برد. شرط کل دو برابر می‌شود.\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \u003cbutton class=\"eachway__reset\" type=\"button\"\u003eبازنشانی\u003c/button\u003e\n    \u003c/div\u003e\n\u003c/section\u003e\n\n\u003cscript\u003e\n(function() {\n    const container = document.currentScript.previousElementSibling;\n\n    const oddsTypeSelect = container.querySelector('.eachway__odds-type');\n    const oddsInput = container.querySelector('.eachway__odds');\n    const oddsHint = container.querySelector('.eachway__odds-hint');\n    const stakeInput = container.querySelector('.eachway__stake');\n    const placeTermsSelect = container.querySelector('.eachway__place-terms');\n    const placesSelect = container.querySelector('.eachway__places');\n\n    const rule4Toggle = container.querySelector('.eachway__rule4-toggle');\n    const rule4Controls = container.querySelector('.eachway__rule4-controls');\n    const rule4WinSelect = container.querySelector('.eachway__rule4-win');\n    const rule4PlaceSelect = container.querySelector('.eachway__rule4-place');\n\n    const outcomeTabs = container.querySelectorAll('.eachway__outcome-tab');\n    const resetBtn = container.querySelector('.eachway__reset');\n\n    const totalStakeEl = container.querySelector('.eachway__total-stake');\n    const placeOddsEl = container.querySelector('.eachway__place-odds');\n    const winReturnEl = container.querySelector('.eachway__win-return');\n    const placeReturnEl = container.querySelector('.eachway__place-return');\n    const profitBox = container.querySelector('.eachway__profit-box');\n    const profitValue = container.querySelector('.eachway__profit-value');\n\n    let selectedOutcome = 'win';\n\n    const placeholders = {\n        'Fractional': '10/1',\n        'Decimal': '11.00',\n        'American': '+1000'\n    };\n\n    const hints = {\n        'Fractional': 'ضرایب کسری وارد کنید (مثلاً 10\\/1، 5\\/1، 3\\/1)',\n        'Decimal': 'ضرایب اعشاری وارد کنید (مثلاً 11.00، 6.00، 4.00)',\n        'American': 'ضرایب آمریکایی وارد کنید (مثلاً \\u002b1000، \\u002b500، \\u002b300)'\n    };\n\n    \n    function validateFractionalCoefficient(coefficient) {\n        return /^\\d+\\/\\d+$/.test(coefficient);\n    }\n\n    function validateDecimalCoefficient(coefficient) {\n        return /^\\d+(\\.\\d+)?$/.test(coefficient) \u0026\u0026 parseFloat(coefficient) \u003e 1;\n    }\n\n    function validateAmericanCoefficient(coefficient) {\n        return /^[-+]?\\d+$/.test(coefficient);\n    }\n\n    \n    function convertFractionToDecimal(fraction) {\n        const parts = fraction.split('/');\n        if (parts.length !== 2) return null;\n        const numerator = parseFloat(parts[0]);\n        const denominator = parseFloat(parts[1]);\n        if (isNaN(numerator) || isNaN(denominator) || denominator === 0) return null;\n        return (numerator / denominator) + 1;\n    }\n\n    function convertAmericanToDecimal(americanOdds) {\n        const oddsValue = parseFloat(americanOdds);\n        if (isNaN(oddsValue)) return null;\n        if (oddsValue \u003e 0) {\n            return (oddsValue / 100) + 1;\n        } else if (oddsValue \u003c 0) {\n            return (100 / Math.abs(oddsValue)) + 1;\n        }\n        return 2;\n    }\n\n    function getDecimalOdds() {\n        const type = oddsTypeSelect.value;\n        const odds = oddsInput.value.trim();\n\n        if (type === 'Fractional') {\n            if (!validateFractionalCoefficient(odds)) return null;\n            return convertFractionToDecimal(odds);\n        } else if (type === 'Decimal') {\n            if (!validateDecimalCoefficient(odds)) return null;\n            return parseFloat(odds);\n        } else if (type === 'American') {\n            if (!validateAmericanCoefficient(odds)) return null;\n            return convertAmericanToDecimal(odds);\n        }\n        return null;\n    }\n\n    function calculate() {\n        const decimalOdds = getDecimalOdds();\n        const stake = parseFloat(stakeInput.value);\n        const placeFraction = parseFloat(placeTermsSelect.value);\n\n        \n        if (decimalOdds === null || decimalOdds \u003c= 1) {\n            if (oddsInput.value.trim() !== '') {\n                oddsInput.classList.add('invalid');\n            }\n            resetOutput();\n            return;\n        } else {\n            oddsInput.classList.remove('invalid');\n        }\n\n        \n        if (isNaN(stake) || stake \u003c= 0) {\n            resetOutput();\n            return;\n        }\n\n        const totalStake = stake * 2; \n        const placeDecimalOdds = 1 + (decimalOdds - 1) * placeFraction;\n\n        \n        const showRule4 = rule4Toggle.value === 'yes';\n        const rule4Win = showRule4 ? parseFloat(rule4WinSelect.value) / 100 : 0;\n        const rule4Place = showRule4 ? parseFloat(rule4PlaceSelect.value) / 100 : 0;\n\n        \n        let winReturn = 0;\n        let placeReturn = 0;\n\n        if (selectedOutcome === 'win') {\n            \n            const winProfit = (decimalOdds - 1) * stake * (1 - rule4Win);\n            winReturn = stake + winProfit;\n\n            const placeProfit = (placeDecimalOdds - 1) * stake * (1 - rule4Place);\n            placeReturn = stake + placeProfit;\n        } else if (selectedOutcome === 'place') {\n            \n            winReturn = 0; \n\n            const placeProfit = (placeDecimalOdds - 1) * stake * (1 - rule4Place);\n            placeReturn = stake + placeProfit;\n        } else {\n            \n            winReturn = 0;\n            placeReturn = 0;\n        }\n\n        const totalReturn = winReturn + placeReturn;\n        const profit = totalReturn - totalStake;\n\n        \n        totalStakeEl.textContent = '$' + totalStake.toFixed(2);\n        placeOddsEl.textContent = placeDecimalOdds.toFixed(2);\n        winReturnEl.textContent = '$' + winReturn.toFixed(2);\n        placeReturnEl.textContent = '$' + placeReturn.toFixed(2);\n\n        profitValue.textContent = '$' + totalReturn.toFixed(2) + ' / ' + (profit \u003e= 0 ? '+$' : '-$') + Math.abs(profit).toFixed(2);\n\n        if (profit \u003e= 0) {\n            profitBox.classList.remove('loss');\n        } else {\n            profitBox.classList.add('loss');\n        }\n    }\n\n    function resetOutput() {\n        totalStakeEl.textContent = '-';\n        placeOddsEl.textContent = '-';\n        winReturnEl.textContent = '-';\n        placeReturnEl.textContent = '-';\n        profitValue.textContent = '-';\n        profitBox.classList.remove('loss');\n    }\n\n    function resetAll() {\n        oddsInput.value = '';\n        stakeInput.value = '';\n        oddsInput.classList.remove('invalid');\n        oddsTypeSelect.selectedIndex = 0;\n        placeTermsSelect.selectedIndex = 0;\n        placesSelect.selectedIndex = 1;\n        rule4Toggle.selectedIndex = 0;\n        rule4WinSelect.selectedIndex = 0;\n        rule4PlaceSelect.selectedIndex = 0;\n        rule4Controls.classList.remove('active');\n\n        outcomeTabs.forEach(tab =\u003e tab.classList.remove('active'));\n        outcomeTabs[0].classList.add('active');\n        selectedOutcome = 'win';\n\n        updatePlaceholder();\n        resetOutput();\n    }\n\n    \n    function updatePlaceholder() {\n        const type = oddsTypeSelect.value;\n        oddsInput.placeholder = placeholders[type];\n        oddsHint.textContent = hints[type];\n    }\n\n    \n    oddsTypeSelect.addEventListener('change', function() {\n        updatePlaceholder();\n        calculate();\n    });\n\n    oddsInput.addEventListener('input', calculate);\n    stakeInput.addEventListener('input', calculate);\n    placeTermsSelect.addEventListener('change', calculate);\n    placesSelect.addEventListener('change', calculate);\n\n    rule4Toggle.addEventListener('change', function() {\n        if (this.value === 'yes') {\n            rule4Controls.classList.add('active');\n        } else {\n            rule4Controls.classList.remove('active');\n        }\n        calculate();\n    });\n\n    rule4WinSelect.addEventListener('change', calculate);\n    rule4PlaceSelect.addEventListener('change', calculate);\n\n    outcomeTabs.forEach(tab =\u003e {\n        tab.addEventListener('click', function() {\n            outcomeTabs.forEach(t =\u003e t.classList.remove('active'));\n            this.classList.add('active');\n            selectedOutcome = this.dataset.outcome;\n            calculate();\n        });\n    });\n\n    resetBtn.addEventListener('click', resetAll);\n\n    \n    updatePlaceholder();\n})();\n\u003c/script\u003e","title":"ماشین‌حساب Each-Way - شرط برد و جایگاه"},{"content":" شانس مانی لاین نوع شرط ریسک برنده شدن مقدار ریسک شما در معرض خطر هستید - برنده شدن - پرداخت - احتمال ضمنی - اعشاری - بازنشانی کنید ","permalink":"https://calculators-odds.com/fa/moneyline-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"moneyline_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eشانس مانی لاین\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"-150\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eنوع شرط\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-bettype\"\u003e\n            \u003coption value=\"risk\"\u003eریسک\u003c/option\u003e\n            \u003coption value=\"towin\"\u003eبرنده شدن\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label js-amountlabel\"\u003eمقدار ریسک\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-amount\" type=\"text\" placeholder=\"100\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eشما در معرض خطر هستید\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-risk\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eبرنده شدن\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-towin\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eپرداخت\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eاحتمال ضمنی\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-prob\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eاعشاری\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-decimal\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003eبازنشانی کنید\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var root = document.getElementById('moneyline_0');\n    var oddsEl = root.querySelector('.js-odds');\n    var betTypeEl = root.querySelector('.js-bettype');\n    var amountEl = root.querySelector('.js-amount');\n    var amountLabelEl = root.querySelector('.js-amountlabel');\n    var riskEl = root.querySelector('.js-risk');\n    var toWinEl = root.querySelector('.js-towin');\n    var payoutEl = root.querySelector('.js-payout');\n    var probEl = root.querySelector('.js-prob');\n    var decimalEl = root.querySelector('.js-decimal');\n    var resetBtn = root.querySelector('.js-reset');\n\n    betTypeEl.addEventListener('change', function() {\n        amountLabelEl.textContent = betTypeEl.value === 'risk' ? 'مقدار ریسک' : 'مقدار برد';\n        update();\n    });\n\n    function update() {\n        var ml = parseInt(oddsEl.value);\n        var amount = parseFloat(amountEl.value);\n        var betType = betTypeEl.value;\n\n        if (isNaN(ml) || ml === 0) {\n            oddsEl.classList.toggle('invalid', !!oddsEl.value.trim());\n            riskEl.textContent='-'; toWinEl.textContent='-'; payoutEl.textContent='-'; probEl.textContent='-'; decimalEl.textContent='-'; return;\n        }\n        oddsEl.classList.remove('invalid');\n\n        var dec;\n        if (ml \u003e 0) dec = (ml / 100) + 1;\n        else dec = (100 / Math.abs(ml)) + 1;\n\n        var prob;\n        if (ml \u003c 0) prob = Math.abs(ml) / (Math.abs(ml) + 100);\n        else prob = 100 / (ml + 100);\n\n        decimalEl.textContent = dec.toFixed(3);\n        probEl.textContent = (prob * 100).toFixed(1) + '%';\n\n        if (!amount || amount \u003c= 0) { riskEl.textContent='-'; toWinEl.textContent='-'; payoutEl.textContent='-'; return; }\n\n        var risk, toWin, payout;\n        if (betType === 'risk') {\n            risk = amount;\n            toWin = amount * (dec - 1);\n            payout = amount * dec;\n        } else {\n            toWin = amount;\n            risk = amount / (dec - 1);\n            payout = risk + toWin;\n        }\n\n        riskEl.textContent = formatNumber(risk);\n        toWinEl.textContent = formatNumber(toWin);\n        payoutEl.textContent = formatNumber(payout);\n    }\n\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        oddsEl.value=''; amountEl.value=''; betTypeEl.selectedIndex=0;\n        oddsEl.classList.remove('invalid');\n        riskEl.textContent='-'; toWinEl.textContent='-'; payoutEl.textContent='-'; probEl.textContent='-'; decimalEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"ماشین‌حساب Moneyline - بازده ضرایب آمریکایی"},{"content":" مجموع شرط بندی شده کل برگردانده شد تعداد شرط ها سود خالص - ٪ ROI - میانگین سهام - سود در هر شرط - بازنشانی کنید ","permalink":"https://calculators-odds.com/fa/roi-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"roi_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eمجموع شرط بندی شده\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-wagered\" type=\"text\" placeholder=\"1000\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eکل برگردانده شد\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-returned\" type=\"text\" placeholder=\"1100\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eتعداد شرط ها\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-numbets\" type=\"text\" placeholder=\"50\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eسود خالص\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003e٪ ROI\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-roi\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eمیانگین سهام\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-avgstake\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eسود در هر شرط\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-perbet\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003eبازنشانی کنید\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var root = document.getElementById('roi_0');\n    var wageredEl = root.querySelector('.js-wagered');\n    var returnedEl = root.querySelector('.js-returned');\n    var numBetsEl = root.querySelector('.js-numbets');\n    var profitEl = root.querySelector('.js-profit');\n    var roiEl = root.querySelector('.js-roi');\n    var avgStakeEl = root.querySelector('.js-avgstake');\n    var perBetEl = root.querySelector('.js-perbet');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var wagered = parseFloat(wageredEl.value);\n        var returned = parseFloat(returnedEl.value);\n        var numBets = parseInt(numBetsEl.value);\n\n        if (isNaN(wagered) || wagered \u003c= 0 || isNaN(returned) || returned \u003c 0) {\n            profitEl.textContent='-'; roiEl.textContent='-'; avgStakeEl.textContent='-'; perBetEl.textContent='-'; return;\n        }\n\n        var profit = returned - wagered;\n        var roi = (profit / wagered) * 100;\n\n        profitEl.textContent = formatNumber(profit);\n        roiEl.textContent = roi.toFixed(2) + '%';\n\n        if (!isNaN(numBets) \u0026\u0026 numBets \u003e 0) {\n            avgStakeEl.textContent = formatNumber(wagered / numBets);\n            perBetEl.textContent = formatNumber(profit / numBets);\n        } else {\n            avgStakeEl.textContent = '-';\n            perBetEl.textContent = '-';\n        }\n    }\n\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        wageredEl.value=''; returnedEl.value=''; numBetsEl.value='';\n        profitEl.textContent='-'; roiEl.textContent='-'; avgStakeEl.textContent='-'; perBetEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"ماشین‌حساب ROI - بازده سرمایه‌گذاری شرط‌بندی"},{"content":" فرمت ضرایب اعشاری کسری آمریکایی کل سهام نتیجه 1 - نتیجه 2 - + نتیجه را اضافه کنید − حذف کنید حاشیه - پرداخت - سود - بازگشت سرمایه - بازنشانی کنید ","permalink":"https://calculators-odds.com/fa/arbitrage-bet-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"arb_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eفرمت ضرایب\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003eاعشاری\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003eکسری\u003c/option\u003e\n            \u003coption value=\"American\"\u003eآمریکایی\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eکل سهام\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-totalstake\" type=\"text\" placeholder=\"1000\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__selections js-selections\"\u003e\n        \u003cdiv class=\"calc-wrap__row calc-wrap__sel-row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eنتیجه 1\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n            \u003cspan class=\"calc-wrap__stake-out js-stake-out\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__row calc-wrap__sel-row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eنتیجه 2\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n            \u003cspan class=\"calc-wrap__stake-out js-stake-out\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row calc-wrap__row--actions\"\u003e\n        \u003cbutton class=\"calc-wrap__btn calc-wrap__btn--sm js-add\" type=\"button\"\u003e+ نتیجه را اضافه کنید\u003c/button\u003e\n        \u003cbutton class=\"calc-wrap__btn calc-wrap__btn--sm calc-wrap__btn--outline js-remove\" type=\"button\"\u003e− حذف کنید\u003c/button\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eحاشیه\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-margin\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eپرداخت\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eسود\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eبازگشت سرمایه\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-roi\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003eبازنشانی کنید\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var root = document.getElementById('arb_0');\n    var formatEl = root.querySelector('.js-format');\n    var totalStakeEl = root.querySelector('.js-totalstake');\n    var selectionsEl = root.querySelector('.js-selections');\n    var marginEl = root.querySelector('.js-margin');\n    var payoutEl = root.querySelector('.js-payout');\n    var profitEl = root.querySelector('.js-profit');\n    var roiEl = root.querySelector('.js-roi');\n    var addBtn = root.querySelector('.js-add');\n    var removeBtn = root.querySelector('.js-remove');\n    var resetBtn = root.querySelector('.js-reset');\n    var outcomeLabel = 'نتیجه';\n\n    function update() {\n        var format = formatEl.value;\n        var inputs = root.querySelectorAll('.js-odds');\n        var stakeOuts = root.querySelectorAll('.js-stake-out');\n        var totalStake = parseFloat(totalStakeEl.value);\n        var decimalOdds = [];\n        var invertedSum = 0;\n        var allValid = true;\n\n        inputs.forEach(function(input) {\n            var d = convertToDecimal(input.value.trim(), format);\n            if (d === null \u0026\u0026 input.value.trim()) { input.classList.add('invalid'); allValid = false; }\n            else { input.classList.remove('invalid'); if (d) { decimalOdds.push(d); invertedSum += 1/d; } else allValid = false; }\n        });\n\n        if (!allValid || decimalOdds.length \u003c 2) {\n            marginEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; roiEl.textContent = '-';\n            stakeOuts.forEach(function(s) { s.textContent = '-'; });\n            return;\n        }\n\n        var margin = (1 - invertedSum) * 100;\n        marginEl.textContent = margin.toFixed(2) + '%';\n        marginEl.style.color = margin \u003e 0 ? '#4CAF50' : '#f44336';\n\n        if (!totalStake || totalStake \u003c= 0) {\n            payoutEl.textContent = '-'; profitEl.textContent = '-'; roiEl.textContent = '-';\n            stakeOuts.forEach(function(s) { s.textContent = '-'; });\n            return;\n        }\n\n        var payout = totalStake / invertedSum;\n        var profit = payout - totalStake;\n        var roi = (profit / totalStake) * 100;\n\n        stakeOuts.forEach(function(s, i) {\n            var individualStake = (totalStake / invertedSum) * (1 / decimalOdds[i]);\n            s.textContent = formatNumber(individualStake);\n        });\n\n        payoutEl.textContent = formatNumber(payout);\n        profitEl.textContent = formatNumber(profit);\n        roiEl.textContent = roi.toFixed(2) + '%';\n    }\n\n    addBtn.addEventListener('click', function() {\n        var count = root.querySelectorAll('.js-odds').length;\n        if (count \u003e= 10) return;\n        var row = document.createElement('div');\n        row.className = 'calc-wrap__row calc-wrap__sel-row';\n        row.innerHTML = '\u003clabel class=\"calc-wrap__label\"\u003e' + outcomeLabel + ' ' + (count+1) + '\u003c/label\u003e\u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"' + getOddsPlaceholder(formatEl.value) + '\" /\u003e\u003cspan class=\"calc-wrap__stake-out js-stake-out\"\u003e-\u003c/span\u003e';\n        selectionsEl.appendChild(row);\n    });\n\n    removeBtn.addEventListener('click', function() {\n        var rows = selectionsEl.querySelectorAll('.calc-wrap__sel-row');\n        if (rows.length \u003e 2) { rows[rows.length-1].remove(); update(); }\n    });\n\n    formatEl.addEventListener('change', function() {\n        root.querySelectorAll('.js-odds').forEach(function(i){i.placeholder=getOddsPlaceholder(formatEl.value);});\n        update();\n    });\n    root.addEventListener('input', update);\n\n    resetBtn.addEventListener('click', function() {\n        var rows = selectionsEl.querySelectorAll('.calc-wrap__sel-row');\n        rows.forEach(function(r,i){ if(i\u003e=2)r.remove(); });\n        root.querySelectorAll('.js-odds').forEach(function(i){i.value='';i.classList.remove('invalid');});\n        root.querySelectorAll('.js-stake-out').forEach(function(s){s.textContent='-';});\n        totalStakeEl.value=''; formatEl.selectedIndex=0;\n        marginEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-'; roiEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"ماشین‌حساب آربیتراژ - محاسبه شرط تضمینی"},{"content":" ماشین حساب احتمال ضمنی مرحله 1: فرمت ضرایب را انتخاب کنید اعشاری کسری آمریکایی مرحله 2: ضرایب را برای هر نتیجه وارد کنید نتیجه 1 — نتیجه 2 — + نتیجه را اضافه کنید ضرایب اعشاری وارد کنید (مثال 2.50) نتایج احتمال کل — حاشیه بوک میکر (ویگ) — مثبت = سود بوکمیکر، منفی = فرصت ارزش شانس منصفانه (بدون ایراد) بازنشانی ","permalink":"https://calculators-odds.com/fa/implied-probability-calculator/","summary":"\u003cstyle\u003e\n.implied {\n    margin: 15px 0;\n    background-color: #1e2328;\n    border-radius: 8px;\n    padding: 20px;\n    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);\n    color: #e8e8e8;\n}\n\n.implied__title {\n    font-size: 22px;\n    font-weight: bold;\n    text-align: center;\n    margin-bottom: 25px;\n    color: #e8e8e8;\n}\n\n.implied__section {\n    background: #2d333b;\n    border-radius: 6px;\n    padding: 15px;\n    margin-bottom: 15px;\n}\n\n.implied__section-title {\n    font-size: 14px;\n    font-weight: 600;\n    color: #4CAF50;\n    margin-bottom: 15px;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n}\n\n.implied__format-selector {\n    display: flex;\n    gap: 8px;\n    flex-wrap: wrap;\n}\n\n.implied__format-btn {\n    flex: 1;\n    min-width: 100px;\n    padding: 10px 15px;\n    border: 2px solid #4CAF50;\n    background: transparent;\n    color: #e8e8e8;\n    cursor: pointer;\n    border-radius: 4px;\n    font-size: 14px;\n    font-weight: 500;\n    transition: all 0.2s;\n}\n\n.implied__format-btn:hover {\n    background: rgba(76, 175, 80, 0.2);\n}\n\n.implied__format-btn.active {\n    background: #4CAF50;\n    color: #fff;\n}\n\n.implied__outcomes-list {\n    display: flex;\n    flex-direction: column;\n    gap: 12px;\n}\n\n.implied__outcome {\n    display: grid;\n    grid-template-columns: 100px 1fr 70px auto;\n    gap: 10px;\n    align-items: center;\n    padding: 10px;\n    background: rgba(0, 0, 0, 0.2);\n    border-radius: 4px;\n}\n\n.implied__outcome-label {\n    font-weight: 500;\n    font-size: 13px;\n    color: #e8e8e8;\n}\n\n.implied__outcome-input {\n    width: 100%;\n    padding: 10px 12px;\n    border: 1px solid rgba(255, 255, 255, 0.1);\n    border-radius: 4px;\n    font-size: 15px;\n    background: #2d333b;\n    color: #e8e8e8;\n    transition: border-color 0.2s;\n}\n\n.implied__outcome-input:focus {\n    outline: none;\n    border-color: #4CAF50;\n}\n\n.implied__outcome-input::placeholder {\n    color: rgba(232, 232, 232, 0.4);\n}\n\n.implied__outcome-input.invalid {\n    border-color: #f44336;\n}\n\n.implied__outcome-prob {\n    font-weight: 600;\n    font-size: 14px;\n    text-align: right;\n    color: #4CAF50;\n}\n\n.implied__outcome-remove {\n    padding: 6px 10px;\n    background: #f44336;\n    color: #fff;\n    border: none;\n    border-radius: 4px;\n    cursor: pointer;\n    font-size: 12px;\n    transition: background 0.2s;\n}\n\n.implied__outcome-remove:hover {\n    background: #d32f2f;\n}\n\n.implied__add-btn {\n    width: 100%;\n    padding: 10px;\n    margin-top: 10px;\n    background: transparent;\n    border: 2px dashed rgba(255, 255, 255, 0.3);\n    color: #e8e8e8;\n    border-radius: 4px;\n    cursor: pointer;\n    font-size: 14px;\n    transition: all 0.2s;\n}\n\n.implied__add-btn:hover {\n    border-color: #4CAF50;\n    color: #4CAF50;\n}\n\n.implied__hint {\n    font-size: 11px;\n    color: rgba(232, 232, 232, 0.5);\n    margin-top: 8px;\n}\n\n.implied__results-grid {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 15px;\n}\n\n.implied__result-box {\n    background: rgba(0, 0, 0, 0.2);\n    padding: 15px;\n    border-radius: 4px;\n    text-align: center;\n}\n\n.implied__result-label {\n    font-size: 11px;\n    color: rgba(232, 232, 232, 0.7);\n    text-transform: uppercase;\n    margin-bottom: 5px;\n}\n\n.implied__result-value {\n    font-size: 22px;\n    font-weight: 700;\n    color: #e8e8e8;\n}\n\n.implied__result-value.positive {\n    color: #4CAF50;\n}\n\n.implied__result-value.negative {\n    color: #f44336;\n}\n\n.implied__result-value.warning {\n    color: #ff9800;\n}\n\n.implied__fair-odds {\n    margin-top: 15px;\n    display: none;\n}\n\n.implied__fair-grid {\n    display: grid;\n    gap: 8px;\n}\n\n.implied__fair-row {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    padding: 10px;\n    background: rgba(0, 0, 0, 0.2);\n    border-radius: 4px;\n}\n\n.implied__fair-label {\n    font-size: 13px;\n    color: rgba(232, 232, 232, 0.8);\n}\n\n.implied__fair-value {\n    font-weight: 600;\n    color: #4CAF50;\n}\n\n.implied__fair-prob {\n    font-size: 12px;\n    color: rgba(232, 232, 232, 0.6);\n    margin-left: 8px;\n}\n\n.implied__buttons {\n    display: flex;\n    justify-content: center;\n    margin-top: 15px;\n}\n\n.implied__btn {\n    padding: 10px 30px;\n    border: none;\n    border-radius: 4px;\n    font-size: 14px;\n    font-weight: 500;\n    cursor: pointer;\n    transition: all 0.2s;\n}\n\n.implied__btn--secondary {\n    background: #666;\n    color: #fff;\n}\n\n.implied__btn--secondary:hover {\n    background: #555;\n}\n\n@media (max-width: 600px) {\n    .implied__outcome {\n        grid-template-columns: 1fr;\n        gap: 8px;\n    }\n\n    .implied__outcome-prob {\n        text-align: left;\n    }\n\n    .implied__results-grid {\n        grid-template-columns: 1fr;\n    }\n\n    .implied__format-btn {\n        min-width: 80px;\n    }\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"implied\"\u003e\n    \u003cdiv class=\"implied__title\"\u003eماشین حساب احتمال ضمنی\u003c/div\u003e\n\n    \u003cdiv class=\"implied__section\"\u003e\n        \u003cdiv class=\"implied__section-title\"\u003eمرحله 1: فرمت ضرایب را انتخاب کنید\u003c/div\u003e\n        \u003cdiv class=\"implied__format-selector\"\u003e\n            \u003cbutton type=\"button\" class=\"implied__format-btn active\" data-type=\"decimal\"\u003eاعشاری\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"implied__format-btn\" data-type=\"fractional\"\u003eکسری\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"implied__format-btn\" data-type=\"american\"\u003eآمریکایی\u003c/button\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"implied__section\"\u003e\n        \u003cdiv class=\"implied__section-title\"\u003eمرحله 2: ضرایب را برای هر نتیجه وارد کنید\u003c/div\u003e\n        \u003cdiv class=\"implied__outcomes-list\"\u003e\n            \u003cdiv class=\"implied__outcome\" data-index=\"0\"\u003e\n                \u003cspan class=\"implied__outcome-label\"\u003eنتیجه 1\u003c/span\u003e\n                \u003cinput type=\"text\" class=\"implied__outcome-input\" placeholder=\"2.50\" data-index=\"0\"\u003e\n                \u003cspan class=\"implied__outcome-prob\" data-index=\"0\"\u003e—\u003c/span\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"implied__outcome\" data-index=\"1\"\u003e\n                \u003cspan class=\"implied__outcome-label\"\u003eنتیجه 2\u003c/span\u003e\n                \u003cinput type=\"text\" class=\"implied__outcome-input\" placeholder=\"2.50\" data-index=\"1\"\u003e\n                \u003cspan class=\"implied__outcome-prob\" data-index=\"1\"\u003e—\u003c/span\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n        \u003cbutton type=\"button\" class=\"implied__add-btn\"\u003e+ نتیجه را اضافه کنید\u003c/button\u003e\n        \u003cdiv class=\"implied__hint implied__hint-format\"\u003eضرایب اعشاری وارد کنید (مثال 2.50)\u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"implied__section\"\u003e\n        \u003cdiv class=\"implied__section-title\"\u003eنتایج\u003c/div\u003e\n        \u003cdiv class=\"implied__results-grid\"\u003e\n            \u003cdiv class=\"implied__result-box\"\u003e\n                \u003cdiv class=\"implied__result-label\"\u003eاحتمال کل\u003c/div\u003e\n                \u003cdiv class=\"implied__result-value\" id=\"impliedTotalProb\"\u003e—\u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"implied__result-box\"\u003e\n                \u003cdiv class=\"implied__result-label\"\u003eحاشیه بوک میکر (ویگ)\u003c/div\u003e\n                \u003cdiv class=\"implied__result-value\" id=\"impliedMargin\"\u003e—\u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"implied__hint\"\u003eمثبت = سود بوکمیکر، منفی = فرصت ارزش\u003c/div\u003e\n\n        \u003cdiv class=\"implied__fair-odds\" id=\"impliedFairOdds\"\u003e\n            \u003cdiv class=\"implied__section-title\" style=\"margin-top: 15px;\"\u003eشانس منصفانه (بدون ایراد)\u003c/div\u003e\n            \u003cdiv class=\"implied__fair-grid\" id=\"impliedFairOddsContent\"\u003e\u003c/div\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"implied__buttons\"\u003e\n        \u003cbutton type=\"button\" class=\"implied__btn implied__btn--secondary\" id=\"impliedReset\"\u003eبازنشانی\u003c/button\u003e\n    \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    const container = document.currentScript.previousElementSibling;\n    let currentOddsType = 'decimal';\n    let outcomeCount = 2;\n    const maxOutcomes = 10;\n\n    const placeholders = {\n        decimal: '2.50',\n        fractional: '3\\/2',\n        american: '\\u002b150'\n    };\n\n    const hints = {\n        decimal: 'ضرایب اعشاری وارد کنید (مثال 2.50)',\n        fractional: 'ضرایب کسری وارد کنید (مثال 3\\/2)',\n        american: 'ضرایب آمریکایی وارد کنید (مثال \\u002b150 یا -200)'\n    };\n\n    const outcomeLabels = [\n        'نتیجه 1',\n        'نتیجه 2',\n        'نتیجه 3 (تساوی)',\n        'Outcome 4',\n        'Outcome 5',\n        'Outcome 6',\n        'Outcome 7',\n        'Outcome 8',\n        'Outcome 9',\n        'Outcome 10'\n    ];\n\n    function validateDecimal(value) {\n        return /^\\d+(\\.\\d+)?$/.test(value) \u0026\u0026 parseFloat(value) \u003e 1;\n    }\n\n    function validateFractional(value) {\n        return /^\\d+\\/\\d+$/.test(value);\n    }\n\n    function validateAmerican(value) {\n        return /^[+-]?\\d+$/.test(value) \u0026\u0026 (parseInt(value) \u003e= 100 || parseInt(value) \u003c= -100);\n    }\n\n    function fractionalToDecimal(fraction) {\n        const parts = fraction.split('/');\n        return (parseFloat(parts[0]) / parseFloat(parts[1])) + 1;\n    }\n\n    function americanToDecimal(american) {\n        const value = parseInt(american);\n        return value \u003e 0 ? (value / 100) + 1 : (100 / Math.abs(value)) + 1;\n    }\n\n    function decimalToFractional(decimal) {\n        const profit = decimal - 1;\n        const gcd = (a, b) =\u003e b ? gcd(b, a % b) : a;\n        const precision = 1000;\n        const numerator = Math.round(profit * precision);\n        const denominator = precision;\n        const divisor = gcd(numerator, denominator);\n        return `${numerator / divisor}/${denominator / divisor}`;\n    }\n\n    function decimalToAmerican(decimal) {\n        if (decimal \u003e= 2) {\n            return '+' + Math.round((decimal - 1) * 100);\n        }\n        return Math.round(-100 / (decimal - 1));\n    }\n\n    function getDecimalOdds(value) {\n        if (!value) return null;\n\n        if (currentOddsType === 'decimal') {\n            return validateDecimal(value) ? parseFloat(value) : null;\n        } else if (currentOddsType === 'fractional') {\n            return validateFractional(value) ? fractionalToDecimal(value) : null;\n        } else if (currentOddsType === 'american') {\n            return validateAmerican(value) ? americanToDecimal(value) : null;\n        }\n        return null;\n    }\n\n    function impliedProbability(decimalOdds) {\n        return (1 / decimalOdds) * 100;\n    }\n\n    function fairOdds(decimalOdds, totalImpliedProb) {\n        const impliedProb = 1 / decimalOdds;\n        const fairProb = impliedProb / (totalImpliedProb / 100);\n        return 1 / fairProb;\n    }\n\n    function updatePlaceholders() {\n        const inputs = container.querySelectorAll('.implied__outcome-input');\n        inputs.forEach(input =\u003e {\n            input.placeholder = placeholders[currentOddsType];\n        });\n\n        const hintEl = container.querySelector('.implied__hint-format');\n        if (hintEl) {\n            hintEl.textContent = hints[currentOddsType];\n        }\n    }\n\n    function addOutcome() {\n        if (outcomeCount \u003e= maxOutcomes) return;\n\n        const outcomesList = container.querySelector('.implied__outcomes-list');\n\n        const newOutcome = document.createElement('div');\n        newOutcome.className = 'implied__outcome';\n        newOutcome.dataset.index = outcomeCount;\n        newOutcome.innerHTML = `\n            \u003cspan class=\"implied__outcome-label\"\u003e${outcomeLabels[outcomeCount] || 'Outcome ' + (outcomeCount + 1)}\u003c/span\u003e\n            \u003cinput type=\"text\" class=\"implied__outcome-input\" placeholder=\"${placeholders[currentOddsType]}\" data-index=\"${outcomeCount}\"\u003e\n            \u003cspan class=\"implied__outcome-prob\" data-index=\"${outcomeCount}\"\u003e—\u003c/span\u003e\n            \u003cbutton type=\"button\" class=\"implied__outcome-remove\"\u003e✕\u003c/button\u003e\n        `;\n\n        outcomesList.appendChild(newOutcome);\n        outcomeCount++;\n\n        newOutcome.querySelector('.implied__outcome-input').addEventListener('input', calculate);\n        newOutcome.querySelector('.implied__outcome-remove').addEventListener('click', function() {\n            removeOutcome(newOutcome);\n        });\n\n        if (outcomeCount \u003e= maxOutcomes) {\n            container.querySelector('.implied__add-btn').style.display = 'none';\n        }\n    }\n\n    function removeOutcome(outcomeEl) {\n        outcomeEl.remove();\n        outcomeCount--;\n\n        const outcomes = container.querySelectorAll('.implied__outcome');\n        outcomes.forEach((outcome, index) =\u003e {\n            outcome.dataset.index = index;\n            outcome.querySelector('.implied__outcome-input').dataset.index = index;\n            outcome.querySelector('.implied__outcome-prob').dataset.index = index;\n        });\n\n        if (outcomeCount \u003c maxOutcomes) {\n            container.querySelector('.implied__add-btn').style.display = 'block';\n        }\n\n        calculate();\n    }\n\n    function calculate() {\n        const inputs = container.querySelectorAll('.implied__outcome-input');\n        const probs = container.querySelectorAll('.implied__outcome-prob');\n\n        let totalImpliedProb = 0;\n        const decimalOddsList = [];\n\n        inputs.forEach((input, index) =\u003e {\n            const value = input.value.trim();\n            const decOdds = getDecimalOdds(value);\n\n            if (value \u0026\u0026 !decOdds) {\n                input.classList.add('invalid');\n                probs[index].textContent = '—';\n                decimalOddsList.push(null);\n            } else if (decOdds) {\n                input.classList.remove('invalid');\n                const prob = impliedProbability(decOdds);\n                totalImpliedProb += prob;\n                decimalOddsList.push(decOdds);\n                probs[index].textContent = prob.toFixed(1) + '%';\n            } else {\n                input.classList.remove('invalid');\n                probs[index].textContent = '—';\n                decimalOddsList.push(null);\n            }\n        });\n\n        const totalProbEl = container.querySelector('#impliedTotalProb');\n        const marginEl = container.querySelector('#impliedMargin');\n        const fairOddsContainer = container.querySelector('#impliedFairOdds');\n        const fairOddsContent = container.querySelector('#impliedFairOddsContent');\n\n        if (totalImpliedProb \u003e 0) {\n            totalProbEl.textContent = totalImpliedProb.toFixed(2) + '%';\n\n            const margin = totalImpliedProb - 100;\n            marginEl.textContent = (margin \u003e= 0 ? '+' : '') + margin.toFixed(2) + '%';\n\n            if (totalImpliedProb \u003e 100) {\n                totalProbEl.className = 'implied__result-value warning';\n                marginEl.className = 'implied__result-value negative';\n            } else if (totalImpliedProb \u003c 100) {\n                totalProbEl.className = 'implied__result-value positive';\n                marginEl.className = 'implied__result-value positive';\n            } else {\n                totalProbEl.className = 'implied__result-value';\n                marginEl.className = 'implied__result-value';\n            }\n\n            const validOdds = decimalOddsList.filter(o =\u003e o !== null);\n            if (validOdds.length \u003e= 2) {\n                fairOddsContainer.style.display = 'block';\n                let fairOddsHTML = '';\n\n                decimalOddsList.forEach((decOdds, index) =\u003e {\n                    if (decOdds) {\n                        const fair = fairOdds(decOdds, totalImpliedProb);\n                        const fairProb = impliedProbability(fair);\n                        let displayOdds = fair.toFixed(2);\n\n                        if (currentOddsType === 'fractional') {\n                            displayOdds = decimalToFractional(fair);\n                        } else if (currentOddsType === 'american') {\n                            displayOdds = decimalToAmerican(fair);\n                        }\n\n                        fairOddsHTML += `\n                            \u003cdiv class=\"implied__fair-row\"\u003e\n                                \u003cspan class=\"implied__fair-label\"\u003e${outcomeLabels[index] || 'Outcome ' + (index + 1)}\u003c/span\u003e\n                                \u003cspan\u003e\n                                    \u003cspan class=\"implied__fair-value\"\u003e${displayOdds}\u003c/span\u003e\n                                    \u003cspan class=\"implied__fair-prob\"\u003e(${fairProb.toFixed(1)}%)\u003c/span\u003e\n                                \u003c/span\u003e\n                            \u003c/div\u003e\n                        `;\n                    }\n                });\n\n                fairOddsContent.innerHTML = fairOddsHTML;\n            } else {\n                fairOddsContainer.style.display = 'none';\n            }\n        } else {\n            totalProbEl.textContent = '—';\n            totalProbEl.className = 'implied__result-value';\n            marginEl.textContent = '—';\n            marginEl.className = 'implied__result-value';\n            fairOddsContainer.style.display = 'none';\n        }\n    }\n\n    function reset() {\n        const outcomes = container.querySelectorAll('.implied__outcome');\n        outcomes.forEach((outcome, index) =\u003e {\n            if (index \u003e= 2) outcome.remove();\n        });\n        outcomeCount = 2;\n\n        container.querySelectorAll('.implied__outcome-input').forEach(input =\u003e {\n            input.value = '';\n            input.classList.remove('invalid');\n        });\n\n        container.querySelectorAll('.implied__outcome-prob').forEach(prob =\u003e {\n            prob.textContent = '—';\n        });\n\n        container.querySelector('#impliedTotalProb').textContent = '—';\n        container.querySelector('#impliedTotalProb').className = 'implied__result-value';\n        container.querySelector('#impliedMargin').textContent = '—';\n        container.querySelector('#impliedMargin').className = 'implied__result-value';\n        container.querySelector('#impliedFairOdds').style.display = 'none';\n        container.querySelector('.implied__add-btn').style.display = 'block';\n    }\n\n    \n    container.querySelectorAll('.implied__format-btn').forEach(btn =\u003e {\n        btn.addEventListener('click', function() {\n            container.querySelectorAll('.implied__format-btn').forEach(b =\u003e b.classList.remove('active'));\n            this.classList.add('active');\n            currentOddsType = this.dataset.type;\n            updatePlaceholders();\n            calculate();\n        });\n    });\n\n    container.querySelectorAll('.implied__outcome-input').forEach(input =\u003e {\n        input.addEventListener('input', calculate);\n    });\n\n    container.querySelector('.implied__add-btn').addEventListener('click', addOutcome);\n    container.querySelector('#impliedReset').addEventListener('click', reset);\n})();\n\u003c/script\u003e","title":"ماشین‌حساب ارزش ضرایب - یافتن شرط‌های ارزشمند"},{"content":" ماشین حساب ارزش مورد انتظار مرحله 1: جزئیات شرط را وارد کنید فرمت ضرایب اعشاری کسری آمریکایی فرمت ضرایب برای ورود ضرایب اعشاری: 2.50 | کسری: 3/2 | آمریکایی: \u0026#43;150 احتمال برد (%) تخمین شما از احتمال واقعی برد (1-99%) مبلغ شرط (اختیاری) برای EV در هر واحد خالی بگذارید نتایج ارزش مورد انتظار - مقادیر بالا را وارد کنید درصد EV - لبه - احتمال ضمنی - احتمال سربه‌سر - پیش‌بینی بلندمدت 10 شرط: - 100 شرط: - 1,000 شرط: - EV = (احتمال × سود) - ((1 - احتمال) × شرط) بازنشانی ","permalink":"https://calculators-odds.com/fa/expected-value-calculator/","summary":"\u003cstyle\u003e\n    .ev {\n        margin: 15px 0;\n        background-color: #1e2328;\n        border-radius: 8px;\n        padding: 25px;\n        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n        color: #e8e8e8;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n    }\n\n    .ev__title {\n        font-size: 24px;\n        font-weight: bold;\n        margin-bottom: 25px;\n        text-align: center;\n    }\n\n    .ev__container {\n        width: 100%;\n        max-width: 600px;\n        display: flex;\n        flex-direction: column;\n        gap: 20px;\n    }\n\n    .ev__section {\n        background: #2d333b;\n        padding: 20px;\n        border-radius: 8px;\n    }\n\n    .ev__section-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #4CAF50;\n        color: #4CAF50;\n    }\n\n    .ev__row {\n        display: flex;\n        gap: 15px;\n        margin-bottom: 15px;\n    }\n\n    .ev__row:last-child {\n        margin-bottom: 0;\n    }\n\n    .ev__input-group {\n        display: flex;\n        flex-direction: column;\n        flex: 1;\n    }\n\n    .ev__label {\n        font-size: 13px;\n        font-weight: bold;\n        margin-bottom: 6px;\n        color: #e8e8e8;\n    }\n\n    .ev__input, .ev__select {\n        background: rgba(0, 0, 0, 0.3);\n        color: #e8e8e8;\n        padding: 12px;\n        border: 1px solid rgba(255, 255, 255, 0.1);\n        border-radius: 4px;\n        font-size: 16px;\n        width: 100%;\n        box-sizing: border-box;\n        transition: border-color 0.2s;\n    }\n\n    .ev__input:focus, .ev__select:focus {\n        outline: none;\n        border-color: #4CAF50;\n    }\n\n    .ev__input::placeholder {\n        color: rgba(232, 232, 232, 0.4);\n    }\n\n    .ev__select {\n        cursor: pointer;\n    }\n\n    .ev__select option {\n        background: #2d333b;\n        color: #e8e8e8;\n    }\n\n    .ev__hint {\n        font-size: 11px;\n        color: rgba(232, 232, 232, 0.5);\n        margin-top: 4px;\n    }\n\n    .ev__output-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #4CAF50;\n        color: #4CAF50;\n    }\n\n    .ev__result-box {\n        padding: 25px;\n        border-radius: 8px;\n        text-align: center;\n        margin-bottom: 20px;\n    }\n\n    .ev__result-box.positive {\n        background: rgba(76, 175, 80, 0.15);\n        border: 2px solid #4CAF50;\n    }\n\n    .ev__result-box.negative {\n        background: rgba(244, 67, 54, 0.15);\n        border: 2px solid #f44336;\n    }\n\n    .ev__result-box.neutral {\n        background: rgba(255, 152, 0, 0.15);\n        border: 2px solid #ff9800;\n    }\n\n    .ev__result-label {\n        font-size: 14px;\n        margin-bottom: 8px;\n        color: rgba(232, 232, 232, 0.8);\n    }\n\n    .ev__result-value {\n        font-size: 32px;\n        font-weight: bold;\n    }\n\n    .ev__result-box.positive .ev__result-value {\n        color: #4CAF50;\n    }\n\n    .ev__result-box.negative .ev__result-value {\n        color: #f44336;\n    }\n\n    .ev__result-box.neutral .ev__result-value {\n        color: #ff9800;\n    }\n\n    .ev__verdict {\n        font-size: 16px;\n        font-weight: bold;\n        margin-top: 10px;\n    }\n\n    .ev__output-grid {\n        display: grid;\n        grid-template-columns: repeat(2, 1fr);\n        gap: 15px;\n    }\n\n    .ev__output-item {\n        text-align: center;\n        padding: 15px;\n        background: rgba(255, 255, 255, 0.05);\n        border-radius: 6px;\n    }\n\n    .ev__output-label {\n        font-size: 12px;\n        color: rgba(232, 232, 232, 0.7);\n        margin-bottom: 8px;\n    }\n\n    .ev__output-value {\n        font-size: 18px;\n        font-weight: bold;\n    }\n\n    .ev__output-value.positive {\n        color: #4CAF50;\n    }\n\n    .ev__output-value.negative {\n        color: #f44336;\n    }\n\n    .ev__projection {\n        margin-top: 20px;\n        padding: 15px;\n        background: rgba(33, 150, 243, 0.15);\n        border: 1px solid rgba(33, 150, 243, 0.3);\n        border-radius: 8px;\n    }\n\n    .ev__projection-title {\n        font-size: 14px;\n        font-weight: bold;\n        margin-bottom: 10px;\n        text-align: center;\n        color: rgba(232, 232, 232, 0.8);\n    }\n\n    .ev__projection-row {\n        display: flex;\n        justify-content: space-between;\n        padding: 8px 0;\n        border-bottom: 1px solid rgba(255,255,255,0.05);\n        font-size: 13px;\n    }\n\n    .ev__projection-row:last-child {\n        border-bottom: none;\n    }\n\n    .ev__projection-row span:first-child {\n        color: rgba(232, 232, 232, 0.6);\n    }\n\n    .ev__projection-row span:last-child {\n        font-weight: bold;\n    }\n\n    .ev__formula {\n        margin-top: 15px;\n        padding: 12px;\n        background: rgba(0, 0, 0, 0.2);\n        border-radius: 4px;\n        font-size: 12px;\n        text-align: center;\n        font-family: monospace;\n        color: rgba(232, 232, 232, 0.6);\n    }\n\n    .ev__reset {\n        margin-top: 20px;\n        padding: 12px 40px;\n        background-color: rgba(255, 255, 255, 0.1);\n        color: #e8e8e8;\n        border: 1px solid rgba(255, 255, 255, 0.2);\n        border-radius: 4px;\n        font-size: 14px;\n        cursor: pointer;\n        transition: all 0.2s;\n        align-self: center;\n    }\n\n    .ev__reset:hover {\n        background-color: rgba(255, 255, 255, 0.2);\n    }\n\n    .invalid {\n        border: 2px solid #f44336 !important;\n    }\n\n    @media (max-width: 600px) {\n        .ev__row {\n            flex-direction: column;\n        }\n        .ev__output-grid {\n            grid-template-columns: 1fr;\n        }\n    }\n\u003c/style\u003e\n\n\u003csection class=\"ev\"\u003e\n    \u003cdiv class=\"ev__title\"\u003eماشین حساب ارزش مورد انتظار\u003c/div\u003e\n\n    \u003cdiv class=\"ev__container\"\u003e\n        \n        \u003cdiv class=\"ev__section\"\u003e\n            \u003cdiv class=\"ev__section-title\"\u003eمرحله 1: جزئیات شرط را وارد کنید\u003c/div\u003e\n            \u003cdiv class=\"ev__row\"\u003e\n                \u003cdiv class=\"ev__input-group\"\u003e\n                    \u003clabel class=\"ev__label\"\u003eفرمت ضرایب\u003c/label\u003e\n                    \u003cselect class=\"ev__select ev__odds-type\"\u003e\n                        \u003coption value=\"Decimal\"\u003eاعشاری\u003c/option\u003e\n                        \u003coption value=\"Fractional\"\u003eکسری\u003c/option\u003e\n                        \u003coption value=\"American\"\u003eآمریکایی\u003c/option\u003e\n                    \u003c/select\u003e\n                    \u003cspan class=\"ev__hint\"\u003eفرمت ضرایب برای ورود\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"ev__input-group\"\u003e\n                    \u003clabel class=\"ev__label\"\u003eضرایب\u003c/label\u003e\n                    \u003cinput type=\"text\" class=\"ev__input ev__odds\" placeholder=\"2.50\" /\u003e\n                    \u003cspan class=\"ev__hint ev__odds-hint\" data-decimal=\"اعشاری: 2.50 | کسری: 3/2 | آمریکایی: \u0026#43;150\" data-fractional=\"اعشاری: 2.50 | کسری: 3/2 | آمریکایی: \u0026#43;150\" data-american=\"اعشاری: 2.50 | کسری: 3/2 | آمریکایی: \u0026#43;150\"\u003eاعشاری: 2.50 | کسری: 3/2 | آمریکایی: \u0026#43;150\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"ev__row\"\u003e\n                \u003cdiv class=\"ev__input-group\"\u003e\n                    \u003clabel class=\"ev__label\"\u003eاحتمال برد (%)\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"ev__input ev__probability\" placeholder=\"45\" min=\"0\" max=\"100\" step=\"0.1\" /\u003e\n                    \u003cspan class=\"ev__hint\"\u003eتخمین شما از احتمال واقعی برد (1-99%)\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"ev__input-group\"\u003e\n                    \u003clabel class=\"ev__label\"\u003eمبلغ شرط (اختیاری)\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"ev__input ev__stake\" placeholder=\"10.00\" min=\"0\" step=\"0.01\" /\u003e\n                    \u003cspan class=\"ev__hint\"\u003eبرای EV در هر واحد خالی بگذارید\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"ev__section\"\u003e\n            \u003cdiv class=\"ev__output-title\"\u003eنتایج\u003c/div\u003e\n            \u003cdiv class=\"ev__result-box neutral\"\u003e\n                \u003cdiv class=\"ev__result-label\"\u003eارزش مورد انتظار\u003c/div\u003e\n                \u003cdiv class=\"ev__result-value ev__ev-value\"\u003e-\u003c/div\u003e\n                \u003cdiv class=\"ev__verdict ev__verdict-text\"\u003eمقادیر بالا را وارد کنید\u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"ev__output-grid\"\u003e\n                \u003cdiv class=\"ev__output-item\"\u003e\n                    \u003cdiv class=\"ev__output-label\"\u003eدرصد EV\u003c/div\u003e\n                    \u003cdiv class=\"ev__output-value ev__ev-percent\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"ev__output-item\"\u003e\n                    \u003cdiv class=\"ev__output-label\"\u003eلبه\u003c/div\u003e\n                    \u003cdiv class=\"ev__output-value ev__edge\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"ev__output-item\"\u003e\n                    \u003cdiv class=\"ev__output-label\"\u003eاحتمال ضمنی\u003c/div\u003e\n                    \u003cdiv class=\"ev__output-value ev__implied\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"ev__output-item\"\u003e\n                    \u003cdiv class=\"ev__output-label\"\u003eاحتمال سربه‌سر\u003c/div\u003e\n                    \u003cdiv class=\"ev__output-value ev__breakeven\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"ev__projection\"\u003e\n                \u003cdiv class=\"ev__projection-title\"\u003eپیش‌بینی بلندمدت\u003c/div\u003e\n                \u003cdiv class=\"ev__projection-row\"\u003e\n                    \u003cspan\u003e10 شرط:\u003c/span\u003e\n                    \u003cspan class=\"ev__proj-10\"\u003e-\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"ev__projection-row\"\u003e\n                    \u003cspan\u003e100 شرط:\u003c/span\u003e\n                    \u003cspan class=\"ev__proj-100\"\u003e-\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"ev__projection-row\"\u003e\n                    \u003cspan\u003e1,000 شرط:\u003c/span\u003e\n                    \u003cspan class=\"ev__proj-1000\"\u003e-\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"ev__formula\"\u003e\n                EV = (احتمال × سود) - ((1 - احتمال) × شرط)\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \u003cbutton class=\"ev__reset\" type=\"button\"\u003eبازنشانی\u003c/button\u003e\n    \u003c/div\u003e\n\u003c/section\u003e\n\n\u003cscript\u003e\n(function() {\n    const container = document.currentScript.previousElementSibling;\n\n    const oddsTypeSelect = container.querySelector('.ev__odds-type');\n    const oddsInput = container.querySelector('.ev__odds');\n    const oddsHint = container.querySelector('.ev__odds-hint');\n    const probabilityInput = container.querySelector('.ev__probability');\n    const stakeInput = container.querySelector('.ev__stake');\n    const resetBtn = container.querySelector('.ev__reset');\n\n    const evValue = container.querySelector('.ev__ev-value');\n    const verdictText = container.querySelector('.ev__verdict-text');\n    const resultBox = container.querySelector('.ev__result-box');\n    const evPercent = container.querySelector('.ev__ev-percent');\n    const edgeEl = container.querySelector('.ev__edge');\n    const impliedEl = container.querySelector('.ev__implied');\n    const breakevenEl = container.querySelector('.ev__breakeven');\n    const proj10 = container.querySelector('.ev__proj-10');\n    const proj100 = container.querySelector('.ev__proj-100');\n    const proj1000 = container.querySelector('.ev__proj-1000');\n\n    const placeholders = {\n        'Decimal': '2.50',\n        'Fractional': '3/2',\n        'American': '+150'\n    };\n\n    const hints = {\n        'Decimal': 'ضرایب اعشاری وارد کنید (مثلاً 2.50، 1.80، 3.00)',\n        'Fractional': 'ضرایب کسری وارد کنید (مثلاً 3\\/2، 5\\/1، 11\\/4)',\n        'American': 'ضرایب آمریکایی وارد کنید (مثلاً \\u002b150، -110، \\u002b200)'\n    };\n\n    \n    function validateFractionalCoefficient(coefficient) {\n        return /^\\d+\\/\\d+$/.test(coefficient);\n    }\n\n    function validateDecimalCoefficient(coefficient) {\n        return /^\\d+(\\.\\d+)?$/.test(coefficient) \u0026\u0026 parseFloat(coefficient) \u003e 1;\n    }\n\n    function validateAmericanCoefficient(coefficient) {\n        return /^[-+]?\\d+$/.test(coefficient);\n    }\n\n    \n    function convertFractionToDecimal(fraction) {\n        const parts = fraction.split('/');\n        if (parts.length !== 2) return null;\n        const numerator = parseFloat(parts[0]);\n        const denominator = parseFloat(parts[1]);\n        if (isNaN(numerator) || isNaN(denominator) || denominator === 0) return null;\n        return (numerator / denominator) + 1;\n    }\n\n    function convertAmericanToDecimal(americanOdds) {\n        const oddsValue = parseFloat(americanOdds);\n        if (isNaN(oddsValue)) return null;\n        if (oddsValue \u003e 0) {\n            return (oddsValue / 100) + 1;\n        } else if (oddsValue \u003c 0) {\n            return (100 / Math.abs(oddsValue)) + 1;\n        }\n        return 2;\n    }\n\n    function getDecimalOdds() {\n        const type = oddsTypeSelect.value;\n        const odds = oddsInput.value.trim();\n\n        if (type === 'Fractional') {\n            if (!validateFractionalCoefficient(odds)) return null;\n            return convertFractionToDecimal(odds);\n        } else if (type === 'Decimal') {\n            if (!validateDecimalCoefficient(odds)) return null;\n            return parseFloat(odds);\n        } else if (type === 'American') {\n            if (!validateAmericanCoefficient(odds)) return null;\n            return convertAmericanToDecimal(odds);\n        }\n        return null;\n    }\n\n    function calculate() {\n        const decimalOdds = getDecimalOdds();\n        const winProb = parseFloat(probabilityInput.value) / 100;\n        const stake = parseFloat(stakeInput.value) || 1; \n\n        \n        if (decimalOdds === null || decimalOdds \u003c= 1) {\n            if (oddsInput.value.trim() !== '') {\n                oddsInput.classList.add('invalid');\n            }\n            resetOutput();\n            return;\n        } else {\n            oddsInput.classList.remove('invalid');\n        }\n\n        \n        if (isNaN(winProb) || winProb \u003c= 0 || winProb \u003e= 1) {\n            if (probabilityInput.value.trim() !== '') {\n                probabilityInput.classList.add('invalid');\n            }\n            resetOutput();\n            return;\n        } else {\n            probabilityInput.classList.remove('invalid');\n        }\n\n        \n        const profit = (decimalOdds - 1) * stake;\n        const ev = (winProb * profit) - ((1 - winProb) * stake);\n        const evPerUnit = (winProb * decimalOdds) - 1;\n        const evPct = evPerUnit * 100;\n\n        const impliedProb = 1 / decimalOdds;\n        const edge = winProb - impliedProb;\n\n        \n        if (stakeInput.value) {\n            evValue.textContent = (ev \u003e= 0 ? '+$' : '-$') + Math.abs(ev).toFixed(2);\n        } else {\n            evValue.textContent = (evPerUnit \u003e= 0 ? '+' : '') + evPerUnit.toFixed(4);\n        }\n\n        \n        resultBox.classList.remove('positive', 'negative', 'neutral');\n        if (ev \u003e 0.001) {\n            resultBox.classList.add('positive');\n            verdictText.textContent = 'EV مثبت (\\u002bEV)';\n        } else if (ev \u003c -0.001) {\n            resultBox.classList.add('negative');\n            verdictText.textContent = 'EV منفی (-EV)';\n        } else {\n            resultBox.classList.add('neutral');\n            verdictText.textContent = 'شکستن حتی';\n        }\n\n        \n        evPercent.textContent = (evPct \u003e= 0 ? '+' : '') + evPct.toFixed(2) + '%';\n        evPercent.className = 'ev__output-value ' + (evPct \u003e= 0 ? 'positive' : 'negative');\n\n        edgeEl.textContent = (edge \u003e= 0 ? '+' : '') + (edge * 100).toFixed(2) + '%';\n        edgeEl.className = 'ev__output-value ' + (edge \u003e= 0 ? 'positive' : 'negative');\n\n        impliedEl.textContent = (impliedProb * 100).toFixed(2) + '%';\n        breakevenEl.textContent = (impliedProb * 100).toFixed(2) + '%';\n\n        \n        proj10.textContent = (ev \u003e= 0 ? '+$' : '-$') + Math.abs(ev * 10).toFixed(2);\n        proj100.textContent = (ev \u003e= 0 ? '+$' : '-$') + Math.abs(ev * 100).toFixed(2);\n        proj1000.textContent = (ev \u003e= 0 ? '+$' : '-$') + Math.abs(ev * 1000).toFixed(2);\n    }\n\n    function resetOutput() {\n        evValue.textContent = '-';\n        verdictText.textContent = 'مقادیر بالا را وارد کنید';\n        resultBox.classList.remove('positive', 'negative');\n        resultBox.classList.add('neutral');\n\n        evPercent.textContent = '-';\n        evPercent.className = 'ev__output-value';\n        edgeEl.textContent = '-';\n        edgeEl.className = 'ev__output-value';\n        impliedEl.textContent = '-';\n        breakevenEl.textContent = '-';\n\n        proj10.textContent = '-';\n        proj100.textContent = '-';\n        proj1000.textContent = '-';\n    }\n\n    function resetAll() {\n        oddsInput.value = '';\n        probabilityInput.value = '';\n        stakeInput.value = '';\n        oddsInput.classList.remove('invalid');\n        probabilityInput.classList.remove('invalid');\n        oddsTypeSelect.selectedIndex = 0;\n        updatePlaceholder();\n        resetOutput();\n    }\n\n    \n    function updatePlaceholder() {\n        const type = oddsTypeSelect.value;\n        oddsInput.placeholder = placeholders[type];\n        oddsHint.textContent = hints[type];\n    }\n\n    \n    oddsTypeSelect.addEventListener('change', function() {\n        updatePlaceholder();\n        calculate();\n    });\n\n    oddsInput.addEventListener('input', calculate);\n    probabilityInput.addEventListener('input', calculate);\n    stakeInput.addEventListener('input', calculate);\n    resetBtn.addEventListener('click', resetAll);\n\n    \n    updatePlaceholder();\n})();\n\u003c/script\u003e","title":"ماشین‌حساب ارزش مورد انتظار - تحلیل شرط EV"},{"content":" فرمت ضرایب اعشاری کسری آمریکایی انتخاب 1 انتخاب 2 انتخاب 3 انتخاب 4 + انتخاب را اضافه کنید − حذف کنید سهام شانس ترکیبی - پرداخت - سود - بازنشانی کنید ","permalink":"https://calculators-odds.com/fa/accumulator-bet-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"acca_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eفرمت ضرایب\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003eاعشاری\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003eکسری\u003c/option\u003e\n            \u003coption value=\"American\"\u003eآمریکایی\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__selections js-selections\"\u003e\n        \n        \u003cdiv class=\"calc-wrap__row calc-wrap__sel-row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 1\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row calc-wrap__sel-row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 2\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row calc-wrap__sel-row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 3\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row calc-wrap__sel-row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 4\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row calc-wrap__row--actions\"\u003e\n        \u003cbutton class=\"calc-wrap__btn calc-wrap__btn--sm js-add\" type=\"button\"\u003e+ انتخاب را اضافه کنید\u003c/button\u003e\n        \u003cbutton class=\"calc-wrap__btn calc-wrap__btn--sm calc-wrap__btn--outline js-remove\" type=\"button\"\u003e− حذف کنید\u003c/button\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eسهام\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"100\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eشانس ترکیبی\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-combined\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eپرداخت\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eسود\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003eبازنشانی کنید\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    const root = document.getElementById('acca_0');\n    const formatEl = root.querySelector('.js-format');\n    const selectionsEl = root.querySelector('.js-selections');\n    const stakeEl = root.querySelector('.js-stake');\n    const combinedEl = root.querySelector('.js-combined');\n    const payoutEl = root.querySelector('.js-payout');\n    const profitEl = root.querySelector('.js-profit');\n    const addBtn = root.querySelector('.js-add');\n    const removeBtn = root.querySelector('.js-remove');\n    const resetBtn = root.querySelector('.js-reset');\n    const selLabel = 'انتخاب';\n\n    function getOddsInputs() { return root.querySelectorAll('.js-odds'); }\n\n    function update() {\n        const format = formatEl.value;\n        const oddsInputs = getOddsInputs();\n        let combined = 1, allValid = true;\n\n        oddsInputs.forEach(function(input) {\n            const d = convertToDecimal(input.value.trim(), format);\n            if (d === null \u0026\u0026 input.value.trim()) { input.classList.add('invalid'); allValid = false; }\n            else { input.classList.remove('invalid'); }\n            if (d) combined *= d; else allValid = false;\n        });\n\n        const stake = parseFloat(stakeEl.value);\n        if (!allValid) { combinedEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n\n        combinedEl.textContent = combined.toFixed(2);\n        if (!stake || stake \u003c= 0) { payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n\n        const payout = combined * stake;\n        payoutEl.textContent = formatNumber(payout);\n        profitEl.textContent = formatNumber(payout - stake);\n    }\n\n    addBtn.addEventListener('click', function() {\n        const count = getOddsInputs().length;\n        if (count \u003e= 20) return;\n        const row = document.createElement('div');\n        row.className = 'calc-wrap__row calc-wrap__sel-row';\n        row.innerHTML = '\u003clabel class=\"calc-wrap__label\"\u003e' + selLabel + ' ' + (count + 1) + '\u003c/label\u003e\u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"' + getOddsPlaceholder(formatEl.value) + '\" /\u003e';\n        selectionsEl.appendChild(row);\n    });\n\n    removeBtn.addEventListener('click', function() {\n        const rows = selectionsEl.querySelectorAll('.calc-wrap__sel-row');\n        if (rows.length \u003e 2) { rows[rows.length - 1].remove(); update(); }\n    });\n\n    formatEl.addEventListener('change', function() {\n        getOddsInputs().forEach(i =\u003e i.placeholder = getOddsPlaceholder(formatEl.value));\n        update();\n    });\n    root.addEventListener('input', update);\n\n    resetBtn.addEventListener('click', function() {\n        const rows = selectionsEl.querySelectorAll('.calc-wrap__sel-row');\n        rows.forEach(function(r, i) { if (i \u003e= 4) r.remove(); });\n        getOddsInputs().forEach(i =\u003e { i.value = ''; i.classList.remove('invalid'); });\n        stakeEl.value = ''; formatEl.selectedIndex = 0;\n        combinedEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-';\n    });\n})();\n\u003c/script\u003e","title":"ماشین‌حساب اکومولاتور - بازده شرط چند گزینه‌ای"},{"content":" ماشین حساب Parlay مرحله 1: فرمت ضرایب را انتخاب کنید اعشاری کسری آمریکایی مرحله 2: مبلغ شرط را وارد کنید مبلغ شرط مبلغی که می‌خواهید شرط ببندید مرحله 3: پایه‌های پارلی را اضافه کنید پا 1 برد باخت باطل پا 2 برد باخت باطل + اضافه کردن پا ضرایب اعشاری وارد کنید (مثال 2.50) نتایج تعداد پاها 2 شانس ترکیبی — احتمال ضمنی — برد احتمالی — سود — همه پاها باید برنده شوند بازنشانی ","permalink":"https://calculators-odds.com/fa/parlay-calculator/","summary":"\u003cstyle\u003e\n.parlay {\n    margin: 15px 0;\n    background-color: #1e2328;\n    border-radius: 8px;\n    padding: 20px;\n    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);\n    color: #e8e8e8;\n}\n\n.parlay__title {\n    font-size: 22px;\n    font-weight: bold;\n    text-align: center;\n    margin-bottom: 25px;\n    color: #e8e8e8;\n}\n\n.parlay__section {\n    background: #2d333b;\n    border-radius: 6px;\n    padding: 15px;\n    margin-bottom: 15px;\n}\n\n.parlay__section-title {\n    font-size: 14px;\n    font-weight: 600;\n    color: #4CAF50;\n    margin-bottom: 15px;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n}\n\n.parlay__format-selector {\n    display: flex;\n    gap: 8px;\n    flex-wrap: wrap;\n}\n\n.parlay__format-btn {\n    flex: 1;\n    min-width: 100px;\n    padding: 10px 15px;\n    border: 2px solid #4CAF50;\n    background: transparent;\n    color: #e8e8e8;\n    cursor: pointer;\n    border-radius: 4px;\n    font-size: 14px;\n    font-weight: 500;\n    transition: all 0.2s;\n}\n\n.parlay__format-btn:hover {\n    background: rgba(76, 175, 80, 0.2);\n}\n\n.parlay__format-btn.active {\n    background: #4CAF50;\n    color: #fff;\n}\n\n.parlay__input-group {\n    display: flex;\n    flex-direction: column;\n    gap: 5px;\n}\n\n.parlay__label {\n    font-size: 13px;\n    color: rgba(232, 232, 232, 0.8);\n}\n\n.parlay__input {\n    width: 100%;\n    padding: 12px;\n    border: 1px solid rgba(255, 255, 255, 0.1);\n    border-radius: 4px;\n    font-size: 16px;\n    background: #2d333b;\n    color: #e8e8e8;\n    transition: border-color 0.2s;\n}\n\n.parlay__input:focus {\n    outline: none;\n    border-color: #4CAF50;\n}\n\n.parlay__input::placeholder {\n    color: rgba(232, 232, 232, 0.4);\n}\n\n.parlay__hint {\n    font-size: 11px;\n    color: rgba(232, 232, 232, 0.5);\n    margin-top: 8px;\n}\n\n.parlay__legs-list {\n    display: flex;\n    flex-direction: column;\n    gap: 10px;\n}\n\n.parlay__leg {\n    display: grid;\n    grid-template-columns: 60px 1fr 100px 60px auto;\n    gap: 10px;\n    align-items: center;\n    padding: 12px;\n    background: rgba(0, 0, 0, 0.2);\n    border-radius: 4px;\n}\n\n.parlay__leg-number {\n    font-weight: 600;\n    font-size: 13px;\n    color: #4CAF50;\n}\n\n.parlay__leg-input {\n    width: 100%;\n    padding: 10px 12px;\n    border: 1px solid rgba(255, 255, 255, 0.1);\n    border-radius: 4px;\n    font-size: 15px;\n    background: #2d333b;\n    color: #e8e8e8;\n    transition: border-color 0.2s;\n}\n\n.parlay__leg-input:focus {\n    outline: none;\n    border-color: #4CAF50;\n}\n\n.parlay__leg-input::placeholder {\n    color: rgba(232, 232, 232, 0.4);\n}\n\n.parlay__leg-input.invalid {\n    border-color: #f44336;\n}\n\n.parlay__leg-outcome {\n    padding: 10px;\n    border: 1px solid rgba(255, 255, 255, 0.1);\n    border-radius: 4px;\n    font-size: 14px;\n    background: #2d333b;\n    color: #e8e8e8;\n    cursor: pointer;\n}\n\n.parlay__leg-decimal {\n    font-size: 12px;\n    color: rgba(232, 232, 232, 0.6);\n    text-align: center;\n}\n\n.parlay__leg-remove {\n    padding: 6px 10px;\n    background: #f44336;\n    color: #fff;\n    border: none;\n    border-radius: 4px;\n    cursor: pointer;\n    font-size: 12px;\n    transition: background 0.2s;\n}\n\n.parlay__leg-remove:hover {\n    background: #d32f2f;\n}\n\n.parlay__add-btn {\n    width: 100%;\n    padding: 10px;\n    margin-top: 10px;\n    background: transparent;\n    border: 2px dashed rgba(255, 255, 255, 0.3);\n    color: #e8e8e8;\n    border-radius: 4px;\n    cursor: pointer;\n    font-size: 14px;\n    transition: all 0.2s;\n}\n\n.parlay__add-btn:hover {\n    border-color: #4CAF50;\n    color: #4CAF50;\n}\n\n.parlay__results-grid {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 10px;\n    margin-bottom: 15px;\n}\n\n.parlay__result-box {\n    background: rgba(0, 0, 0, 0.2);\n    padding: 12px;\n    border-radius: 4px;\n    text-align: center;\n}\n\n.parlay__result-label {\n    font-size: 10px;\n    color: rgba(232, 232, 232, 0.7);\n    text-transform: uppercase;\n    margin-bottom: 4px;\n}\n\n.parlay__result-value {\n    font-size: 18px;\n    font-weight: 700;\n    color: #e8e8e8;\n}\n\n.parlay__result-value.highlight {\n    color: #4CAF50;\n}\n\n.parlay__result-value.warning {\n    color: #ff9800;\n}\n\n.parlay__result-value.lose {\n    color: #f44336;\n}\n\n.parlay__payout-grid {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 10px;\n}\n\n.parlay__payout-box {\n    background: rgba(76, 175, 80, 0.1);\n    border: 1px solid rgba(76, 175, 80, 0.3);\n    padding: 15px;\n    border-radius: 4px;\n    text-align: center;\n}\n\n.parlay__payout-label {\n    font-size: 11px;\n    color: rgba(232, 232, 232, 0.7);\n    text-transform: uppercase;\n    margin-bottom: 5px;\n}\n\n.parlay__payout-value {\n    font-size: 24px;\n    font-weight: 700;\n    color: #4CAF50;\n}\n\n.parlay__payout-value.lose {\n    color: #f44336;\n}\n\n.parlay__status {\n    text-align: center;\n    padding: 12px;\n    border-radius: 4px;\n    margin-top: 15px;\n    font-weight: 600;\n    font-size: 14px;\n}\n\n.parlay__status.wins {\n    background: rgba(76, 175, 80, 0.2);\n    color: #4CAF50;\n}\n\n.parlay__status.loses {\n    background: rgba(244, 67, 54, 0.2);\n    color: #f44336;\n}\n\n.parlay__status.push {\n    background: rgba(255, 152, 0, 0.2);\n    color: #ff9800;\n}\n\n.parlay__status.pending {\n    background: rgba(255, 255, 255, 0.05);\n    color: rgba(232, 232, 232, 0.6);\n}\n\n.parlay__buttons {\n    display: flex;\n    justify-content: center;\n    margin-top: 15px;\n}\n\n.parlay__btn {\n    padding: 10px 30px;\n    border: none;\n    border-radius: 4px;\n    font-size: 14px;\n    font-weight: 500;\n    cursor: pointer;\n    transition: all 0.2s;\n}\n\n.parlay__btn--secondary {\n    background: #666;\n    color: #fff;\n}\n\n.parlay__btn--secondary:hover {\n    background: #555;\n}\n\n@media (max-width: 700px) {\n    .parlay__leg {\n        grid-template-columns: 1fr;\n        gap: 8px;\n    }\n\n    .parlay__leg-decimal {\n        text-align: left;\n    }\n\n    .parlay__results-grid {\n        grid-template-columns: 1fr;\n    }\n\n    .parlay__payout-grid {\n        grid-template-columns: 1fr;\n    }\n\n    .parlay__format-btn {\n        min-width: 80px;\n    }\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"parlay\"\u003e\n    \u003cdiv class=\"parlay__title\"\u003eماشین حساب Parlay\u003c/div\u003e\n\n    \u003cdiv class=\"parlay__section\"\u003e\n        \u003cdiv class=\"parlay__section-title\"\u003eمرحله 1: فرمت ضرایب را انتخاب کنید\u003c/div\u003e\n        \u003cdiv class=\"parlay__format-selector\"\u003e\n            \u003cbutton type=\"button\" class=\"parlay__format-btn active\" data-type=\"decimal\"\u003eاعشاری\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"parlay__format-btn\" data-type=\"fractional\"\u003eکسری\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"parlay__format-btn\" data-type=\"american\"\u003eآمریکایی\u003c/button\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"parlay__section\"\u003e\n        \u003cdiv class=\"parlay__section-title\"\u003eمرحله 2: مبلغ شرط را وارد کنید\u003c/div\u003e\n        \u003cdiv class=\"parlay__input-group\"\u003e\n            \u003clabel class=\"parlay__label\"\u003eمبلغ شرط\u003c/label\u003e\n            \u003cinput type=\"text\" class=\"parlay__input parlay__stake\" placeholder=\"100\"\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"parlay__hint\"\u003eمبلغی که می‌خواهید شرط ببندید\u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"parlay__section\"\u003e\n        \u003cdiv class=\"parlay__section-title\"\u003eمرحله 3: پایه‌های پارلی را اضافه کنید\u003c/div\u003e\n        \u003cdiv class=\"parlay__legs-list\"\u003e\n            \u003cdiv class=\"parlay__leg\" data-index=\"0\"\u003e\n                \u003cspan class=\"parlay__leg-number\"\u003eپا 1\u003c/span\u003e\n                \u003cinput type=\"text\" class=\"parlay__leg-input\" placeholder=\"2.50\" data-index=\"0\"\u003e\n                \u003cselect class=\"parlay__leg-outcome\" data-index=\"0\"\u003e\n                    \u003coption value=\"win\"\u003eبرد\u003c/option\u003e\n                    \u003coption value=\"lose\"\u003eباخت\u003c/option\u003e\n                    \u003coption value=\"push\"\u003eباطل\u003c/option\u003e\n                \u003c/select\u003e\n                \u003cspan class=\"parlay__leg-decimal\" data-index=\"0\"\u003e\u003c/span\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"parlay__leg\" data-index=\"1\"\u003e\n                \u003cspan class=\"parlay__leg-number\"\u003eپا 2\u003c/span\u003e\n                \u003cinput type=\"text\" class=\"parlay__leg-input\" placeholder=\"2.50\" data-index=\"1\"\u003e\n                \u003cselect class=\"parlay__leg-outcome\" data-index=\"1\"\u003e\n                    \u003coption value=\"win\"\u003eبرد\u003c/option\u003e\n                    \u003coption value=\"lose\"\u003eباخت\u003c/option\u003e\n                    \u003coption value=\"push\"\u003eباطل\u003c/option\u003e\n                \u003c/select\u003e\n                \u003cspan class=\"parlay__leg-decimal\" data-index=\"1\"\u003e\u003c/span\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n        \u003cbutton type=\"button\" class=\"parlay__add-btn\"\u003e+ اضافه کردن پا\u003c/button\u003e\n        \u003cdiv class=\"parlay__hint parlay__hint-format\"\u003eضرایب اعشاری وارد کنید (مثال 2.50)\u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"parlay__section\"\u003e\n        \u003cdiv class=\"parlay__section-title\"\u003eنتایج\u003c/div\u003e\n        \u003cdiv class=\"parlay__results-grid\"\u003e\n            \u003cdiv class=\"parlay__result-box\"\u003e\n                \u003cdiv class=\"parlay__result-label\"\u003eتعداد پاها\u003c/div\u003e\n                \u003cdiv class=\"parlay__result-value\" id=\"parlayLegs\"\u003e2\u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"parlay__result-box\"\u003e\n                \u003cdiv class=\"parlay__result-label\"\u003eشانس ترکیبی\u003c/div\u003e\n                \u003cdiv class=\"parlay__result-value\" id=\"parlayCombinedOdds\"\u003e—\u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"parlay__result-box\"\u003e\n                \u003cdiv class=\"parlay__result-label\"\u003eاحتمال ضمنی\u003c/div\u003e\n                \u003cdiv class=\"parlay__result-value\" id=\"parlayImpliedProb\"\u003e—\u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \u003cdiv class=\"parlay__payout-grid\"\u003e\n            \u003cdiv class=\"parlay__payout-box\"\u003e\n                \u003cdiv class=\"parlay__payout-label\"\u003eبرد احتمالی\u003c/div\u003e\n                \u003cdiv class=\"parlay__payout-value\" id=\"parlayPayout\"\u003e—\u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"parlay__payout-box\"\u003e\n                \u003cdiv class=\"parlay__payout-label\"\u003eسود\u003c/div\u003e\n                \u003cdiv class=\"parlay__payout-value\" id=\"parlayProfit\"\u003e—\u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \u003cdiv class=\"parlay__status pending\" id=\"parlayStatus\"\u003eهمه پاها باید برنده شوند\u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"parlay__buttons\"\u003e\n        \u003cbutton type=\"button\" class=\"parlay__btn parlay__btn--secondary\" id=\"parlayReset\"\u003eبازنشانی\u003c/button\u003e\n    \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    const container = document.currentScript.previousElementSibling;\n    let currentOddsType = 'decimal';\n    let legCount = 2;\n    const maxLegs = 15;\n\n    const placeholders = {\n        decimal: '2.50',\n        fractional: '3\\/2',\n        american: '\\u002b150'\n    };\n\n    const hints = {\n        decimal: 'ضرایب اعشاری وارد کنید (مثال 2.50)',\n        fractional: 'ضرایب کسری وارد کنید (مثال 3\\/2)',\n        american: 'ضرایب آمریکایی وارد کنید (مثال \\u002b150 یا -200)'\n    };\n\n    function validateDecimal(value) {\n        return /^\\d+(\\.\\d+)?$/.test(value) \u0026\u0026 parseFloat(value) \u003e 1;\n    }\n\n    function validateFractional(value) {\n        return /^\\d+\\/\\d+$/.test(value);\n    }\n\n    function validateAmerican(value) {\n        const cleaned = value.replace(/^\\+/, '');\n        return /^-?\\d+$/.test(cleaned) \u0026\u0026 (Math.abs(parseInt(cleaned)) \u003e= 100);\n    }\n\n    function fractionalToDecimal(fraction) {\n        const parts = fraction.split('/');\n        return (parseFloat(parts[0]) / parseFloat(parts[1])) + 1;\n    }\n\n    function americanToDecimal(american) {\n        const value = parseInt(american.replace(/^\\+/, ''));\n        return value \u003e 0 ? (value / 100) + 1 : (100 / Math.abs(value)) + 1;\n    }\n\n    function decimalToAmerican(decimal) {\n        if (decimal \u003e= 2) {\n            return '+' + Math.round((decimal - 1) * 100);\n        }\n        return Math.round(-100 / (decimal - 1)).toString();\n    }\n\n    function getDecimalOdds(value) {\n        if (!value) return null;\n\n        if (currentOddsType === 'decimal') {\n            return validateDecimal(value) ? parseFloat(value) : null;\n        } else if (currentOddsType === 'fractional') {\n            return validateFractional(value) ? fractionalToDecimal(value) : null;\n        } else if (currentOddsType === 'american') {\n            return validateAmerican(value) ? americanToDecimal(value) : null;\n        }\n        return null;\n    }\n\n    function updatePlaceholders() {\n        container.querySelectorAll('.parlay__leg-input').forEach(input =\u003e {\n            input.placeholder = placeholders[currentOddsType];\n        });\n\n        const hintEl = container.querySelector('.parlay__hint-format');\n        if (hintEl) {\n            hintEl.textContent = hints[currentOddsType];\n        }\n    }\n\n    function addLeg() {\n        if (legCount \u003e= maxLegs) return;\n\n        const legsList = container.querySelector('.parlay__legs-list');\n\n        const newLeg = document.createElement('div');\n        newLeg.className = 'parlay__leg';\n        newLeg.dataset.index = legCount;\n        newLeg.innerHTML = `\n            \u003cspan class=\"parlay__leg-number\"\u003eپا ${legCount + 1}\u003c/span\u003e\n            \u003cinput type=\"text\" class=\"parlay__leg-input\" placeholder=\"${placeholders[currentOddsType]}\" data-index=\"${legCount}\"\u003e\n            \u003cselect class=\"parlay__leg-outcome\" data-index=\"${legCount}\"\u003e\n                \u003coption value=\"win\"\u003eبرد\u003c/option\u003e\n                \u003coption value=\"lose\"\u003eباخت\u003c/option\u003e\n                \u003coption value=\"push\"\u003eباطل\u003c/option\u003e\n            \u003c/select\u003e\n            \u003cspan class=\"parlay__leg-decimal\" data-index=\"${legCount}\"\u003e\u003c/span\u003e\n            \u003cbutton type=\"button\" class=\"parlay__leg-remove\"\u003e✕\u003c/button\u003e\n        `;\n\n        legsList.appendChild(newLeg);\n        legCount++;\n\n        newLeg.querySelector('.parlay__leg-input').addEventListener('input', calculate);\n        newLeg.querySelector('.parlay__leg-outcome').addEventListener('change', calculate);\n        newLeg.querySelector('.parlay__leg-remove').addEventListener('click', function() {\n            removeLeg(newLeg);\n        });\n\n        if (legCount \u003e= maxLegs) {\n            container.querySelector('.parlay__add-btn').style.display = 'none';\n        }\n\n        calculate();\n    }\n\n    function removeLeg(legEl) {\n        if (legCount \u003c= 2) return;\n\n        legEl.remove();\n        legCount--;\n\n        const legs = container.querySelectorAll('.parlay__leg');\n        legs.forEach((leg, index) =\u003e {\n            leg.dataset.index = index;\n            leg.querySelector('.parlay__leg-number').textContent = 'پا ' + (index + 1);\n            leg.querySelector('.parlay__leg-input').dataset.index = index;\n            leg.querySelector('.parlay__leg-outcome').dataset.index = index;\n            leg.querySelector('.parlay__leg-decimal').dataset.index = index;\n        });\n\n        if (legCount \u003c maxLegs) {\n            container.querySelector('.parlay__add-btn').style.display = 'block';\n        }\n\n        calculate();\n    }\n\n    function calculate() {\n        const inputs = container.querySelectorAll('.parlay__leg-input');\n        const outcomes = container.querySelectorAll('.parlay__leg-outcome');\n        const decimalDisplays = container.querySelectorAll('.parlay__leg-decimal');\n        const stake = parseFloat(container.querySelector('.parlay__stake').value) || 0;\n\n        let combinedOdds = 1;\n        let validLegs = 0;\n        let hasLoss = false;\n        let hasPush = false;\n        let pushCount = 0;\n\n        inputs.forEach((input, index) =\u003e {\n            const value = input.value.trim();\n            const decOdds = getDecimalOdds(value);\n            const outcome = outcomes[index].value;\n\n            if (value \u0026\u0026 !decOdds) {\n                input.classList.add('invalid');\n                decimalDisplays[index].textContent = '';\n            } else if (decOdds) {\n                input.classList.remove('invalid');\n\n                if (currentOddsType !== 'decimal') {\n                    decimalDisplays[index].textContent = `(${decOdds.toFixed(2)})`;\n                } else {\n                    decimalDisplays[index].textContent = '';\n                }\n\n                if (outcome === 'win') {\n                    combinedOdds *= decOdds;\n                    validLegs++;\n                } else if (outcome === 'push') {\n                    hasPush = true;\n                    pushCount++;\n                    validLegs++;\n                } else if (outcome === 'lose') {\n                    hasLoss = true;\n                    validLegs++;\n                }\n            } else {\n                input.classList.remove('invalid');\n                decimalDisplays[index].textContent = '';\n            }\n        });\n\n        container.querySelector('#parlayLegs').textContent = legCount;\n\n        const combinedOddsEl = container.querySelector('#parlayCombinedOdds');\n        const impliedProbEl = container.querySelector('#parlayImpliedProb');\n        const payoutEl = container.querySelector('#parlayPayout');\n        const profitEl = container.querySelector('#parlayProfit');\n        const statusEl = container.querySelector('#parlayStatus');\n\n        if (validLegs \u003e= 2 \u0026\u0026 !hasLoss) {\n            let displayOdds;\n            if (currentOddsType === 'american') {\n                displayOdds = decimalToAmerican(combinedOdds);\n            } else if (currentOddsType === 'fractional') {\n                const profit = combinedOdds - 1;\n                displayOdds = `${Math.round(profit * 100)}/100`;\n            } else {\n                displayOdds = combinedOdds.toFixed(2);\n            }\n\n            combinedOddsEl.textContent = displayOdds;\n\n            const impliedProb = (1 / combinedOdds) * 100;\n            impliedProbEl.textContent = impliedProb.toFixed(1) + '%';\n\n            if (stake \u003e 0) {\n                const payout = stake * combinedOdds;\n                const profit = payout - stake;\n\n                payoutEl.textContent = '$' + payout.toFixed(2);\n                payoutEl.className = 'parlay__payout-value';\n                profitEl.textContent = '+$' + profit.toFixed(2);\n                profitEl.className = 'parlay__payout-value';\n            } else {\n                payoutEl.textContent = '—';\n                profitEl.textContent = '—';\n            }\n\n            if (hasPush \u0026\u0026 pushCount === validLegs - 1) {\n                statusEl.textContent = 'کاهش به شرط تکی (تساوی‌ها)';\n                statusEl.className = 'parlay__status push';\n            } else if (hasPush) {\n                statusEl.textContent = 'پارلی برد (با تساوی‌ها)';\n                statusEl.className = 'parlay__status wins';\n            } else {\n                statusEl.textContent = 'پارلی برد!';\n                statusEl.className = 'parlay__status wins';\n            }\n        } else if (hasLoss) {\n            combinedOddsEl.textContent = '—';\n            impliedProbEl.textContent = '—';\n            payoutEl.textContent = '$0.00';\n            payoutEl.className = 'parlay__payout-value lose';\n            profitEl.textContent = stake \u003e 0 ? '-$' + stake.toFixed(2) : '—';\n            profitEl.className = 'parlay__payout-value lose';\n            statusEl.textContent = 'پارلی باخت';\n            statusEl.className = 'parlay__status loses';\n        } else {\n            combinedOddsEl.textContent = '—';\n            impliedProbEl.textContent = '—';\n            payoutEl.textContent = '—';\n            payoutEl.className = 'parlay__payout-value';\n            profitEl.textContent = '—';\n            profitEl.className = 'parlay__payout-value';\n            statusEl.textContent = 'همه پاها باید برنده شوند';\n            statusEl.className = 'parlay__status pending';\n        }\n    }\n\n    function reset() {\n        const legs = container.querySelectorAll('.parlay__leg');\n        legs.forEach((leg, index) =\u003e {\n            if (index \u003e= 2) leg.remove();\n        });\n        legCount = 2;\n\n        container.querySelectorAll('.parlay__leg-input').forEach(input =\u003e {\n            input.value = '';\n            input.classList.remove('invalid');\n        });\n\n        container.querySelectorAll('.parlay__leg-outcome').forEach(select =\u003e {\n            select.value = 'win';\n        });\n\n        container.querySelectorAll('.parlay__leg-decimal').forEach(span =\u003e {\n            span.textContent = '';\n        });\n\n        container.querySelector('.parlay__stake').value = '';\n\n        container.querySelector('#parlayLegs').textContent = '2';\n        container.querySelector('#parlayCombinedOdds').textContent = '—';\n        container.querySelector('#parlayImpliedProb').textContent = '—';\n        container.querySelector('#parlayPayout').textContent = '—';\n        container.querySelector('#parlayPayout').className = 'parlay__payout-value';\n        container.querySelector('#parlayProfit').textContent = '—';\n        container.querySelector('#parlayProfit').className = 'parlay__payout-value';\n        container.querySelector('#parlayStatus').textContent = 'همه پاها باید برنده شوند';\n        container.querySelector('#parlayStatus').className = 'parlay__status pending';\n\n        container.querySelector('.parlay__add-btn').style.display = 'block';\n    }\n\n    \n    container.querySelectorAll('.parlay__format-btn').forEach(btn =\u003e {\n        btn.addEventListener('click', function() {\n            container.querySelectorAll('.parlay__format-btn').forEach(b =\u003e b.classList.remove('active'));\n            this.classList.add('active');\n            currentOddsType = this.dataset.type;\n            updatePlaceholders();\n            calculate();\n        });\n    });\n\n    container.querySelectorAll('.parlay__leg-input').forEach(input =\u003e {\n        input.addEventListener('input', calculate);\n    });\n\n    container.querySelectorAll('.parlay__leg-outcome').forEach(select =\u003e {\n        select.addEventListener('change', calculate);\n    });\n\n    container.querySelector('.parlay__stake').addEventListener('input', calculate);\n    container.querySelector('.parlay__add-btn').addEventListener('click', addLeg);\n    container.querySelector('#parlayReset').addEventListener('click', reset);\n})();\n\u003c/script\u003e","title":"ماشین‌حساب پارلی - بازده شرط ترکیبی"},{"content":" فرمت ضرایب اعشاری کسری آمریکایی انتخاب 1 انتخاب 2 انتخاب 3 سهام واحد تعداد شرط ها 7 کل سهام - پرداخت - سود - بازنشانی کنید ","permalink":"https://calculators-odds.com/fa/patent-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"patent_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eفرمت ضرایب\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003eاعشاری\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003eکسری\u003c/option\u003e\n            \u003coption value=\"American\"\u003eآمریکایی\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__selections\"\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 1\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 2\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 3\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eسهام واحد\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"10\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eتعداد شرط ها\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value\"\u003e7\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eکل سهام\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-totalstake\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eپرداخت\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eسود\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003eبازنشانی کنید\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var FOLDS = [1, 2, 3];\n    var root = document.getElementById('patent_0');\n    var formatEl = root.querySelector('.js-format');\n    var stakeEl = root.querySelector('.js-stake');\n    var payoutEl = root.querySelector('.js-payout');\n    var profitEl = root.querySelector('.js-profit');\n    var totalStakeEl = root.querySelector('.js-totalstake');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var format = formatEl.value;\n        var inputs = root.querySelectorAll('.js-odds');\n        var odds = [], allValid = true;\n        inputs.forEach(function(input) {\n            var d = convertToDecimal(input.value.trim(), format);\n            if (d === null \u0026\u0026 input.value.trim()) { input.classList.add('invalid'); allValid = false; }\n            else { input.classList.remove('invalid'); if (d) odds.push(d); else allValid = false; }\n        });\n        var unitStake = parseFloat(stakeEl.value);\n        if (!allValid || !unitStake || unitStake \u003c= 0) { totalStakeEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n        var r = calcSystemBet(odds, unitStake, FOLDS);\n        totalStakeEl.textContent = formatNumber(r.totalStake);\n        payoutEl.textContent = formatNumber(r.totalPayout);\n        profitEl.textContent = formatNumber(r.totalPayout - r.totalStake);\n    }\n\n    formatEl.addEventListener('change', function() { root.querySelectorAll('.js-odds').forEach(function(i){i.placeholder=getOddsPlaceholder(formatEl.value);}); update(); });\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        root.querySelectorAll('.js-odds').forEach(function(i){i.value='';i.classList.remove('invalid');});\n        stakeEl.value=''; formatEl.selectedIndex=0; totalStakeEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"ماشین‌حساب پتنت - 3 انتخاب 7 شرط"},{"content":" نوع Tricast تریکاست مستقیم تری کاست ترکیبی شانس مقام اول شانس مقام دوم شانس مقام سوم سهام تعداد شرط ها 1 کل سهام - سود تقریبی - پرداخت - سود - بازنشانی کنید ","permalink":"https://calculators-odds.com/fa/tricast-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"tricast_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eنوع Tricast\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-type\"\u003e\n            \u003coption value=\"straight\"\u003eتریکاست مستقیم\u003c/option\u003e\n            \u003coption value=\"combination\"\u003eتری کاست ترکیبی\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eشانس مقام اول\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-odds1\" type=\"text\" placeholder=\"5.00\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eشانس مقام دوم\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-odds2\" type=\"text\" placeholder=\"8.00\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eشانس مقام سوم\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-odds3\" type=\"text\" placeholder=\"12.00\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eسهام\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"1\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eتعداد شرط ها\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-numbets\"\u003e1\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eکل سهام\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-totalstake\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eسود تقریبی\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-dividend\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eپرداخت\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eسود\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003eبازنشانی کنید\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var root = document.getElementById('tricast_0');\n    var typeEl = root.querySelector('.js-type');\n    var odds1El = root.querySelector('.js-odds1');\n    var odds2El = root.querySelector('.js-odds2');\n    var odds3El = root.querySelector('.js-odds3');\n    var stakeEl = root.querySelector('.js-stake');\n    var numBetsEl = root.querySelector('.js-numbets');\n    var totalStakeEl = root.querySelector('.js-totalstake');\n    var dividendEl = root.querySelector('.js-dividend');\n    var payoutEl = root.querySelector('.js-payout');\n    var profitEl = root.querySelector('.js-profit');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var o1 = parseFloat(odds1El.value);\n        var o2 = parseFloat(odds2El.value);\n        var o3 = parseFloat(odds3El.value);\n        var stake = parseFloat(stakeEl.value);\n        var isCombination = typeEl.value === 'combination';\n        var numBets = isCombination ? 6 : 1;\n        numBetsEl.textContent = numBets;\n\n        if (isNaN(o1) || isNaN(o2) || isNaN(o3) || o1 \u003c= 1 || o2 \u003c= 1 || o3 \u003c= 1) {\n            totalStakeEl.textContent = '-'; dividendEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return;\n        }\n        if (!stake || stake \u003c= 0) {\n            totalStakeEl.textContent = '-'; dividendEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return;\n        }\n\n        \n        var dividend = o1 * o2 * o3;\n        var totalStake = stake * numBets;\n        var payout = dividend * stake;\n\n        totalStakeEl.textContent = formatNumber(totalStake);\n        dividendEl.textContent = formatNumber(dividend);\n        payoutEl.textContent = formatNumber(payout);\n        profitEl.textContent = formatNumber(payout - totalStake);\n    }\n\n    typeEl.addEventListener('change', update);\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        odds1El.value=''; odds2El.value=''; odds3El.value=''; stakeEl.value='';\n        typeEl.selectedIndex=0; numBetsEl.textContent='1';\n        totalStakeEl.textContent='-'; dividendEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"ماشین‌حساب ترایکست - شرط 1-2-3"},{"content":" فرمت ضرایب اعشاری کسری آمریکایی انتخاب 1 انتخاب 2 انتخاب 3 سهام واحد تعداد شرط ها 4 کل سهام - پرداخت - سود - بازنشانی کنید ","permalink":"https://calculators-odds.com/fa/trixie-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"trixie_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eفرمت ضرایب\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003eاعشاری\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003eکسری\u003c/option\u003e\n            \u003coption value=\"American\"\u003eآمریکایی\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__selections\"\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 1\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 2\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 3\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eسهام واحد\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"10\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eتعداد شرط ها\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value\"\u003e4\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eکل سهام\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-totalstake\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eپرداخت\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eسود\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003eبازنشانی کنید\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var FOLDS = [2, 3];\n    var root = document.getElementById('trixie_0');\n    var formatEl = root.querySelector('.js-format');\n    var stakeEl = root.querySelector('.js-stake');\n    var payoutEl = root.querySelector('.js-payout');\n    var profitEl = root.querySelector('.js-profit');\n    var totalStakeEl = root.querySelector('.js-totalstake');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var format = formatEl.value;\n        var inputs = root.querySelectorAll('.js-odds');\n        var odds = [], allValid = true;\n        inputs.forEach(function(input) {\n            var d = convertToDecimal(input.value.trim(), format);\n            if (d === null \u0026\u0026 input.value.trim()) { input.classList.add('invalid'); allValid = false; }\n            else { input.classList.remove('invalid'); if (d) odds.push(d); else allValid = false; }\n        });\n        var unitStake = parseFloat(stakeEl.value);\n        if (!allValid || !unitStake || unitStake \u003c= 0) { totalStakeEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n        var r = calcSystemBet(odds, unitStake, FOLDS);\n        totalStakeEl.textContent = formatNumber(r.totalStake);\n        payoutEl.textContent = formatNumber(r.totalPayout);\n        profitEl.textContent = formatNumber(r.totalPayout - r.totalStake);\n    }\n\n    formatEl.addEventListener('change', function() { root.querySelectorAll('.js-odds').forEach(function(i){i.placeholder=getOddsPlaceholder(formatEl.value);}); update(); });\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        root.querySelectorAll('.js-odds').forEach(function(i){i.value='';i.classList.remove('invalid');});\n        stakeEl.value=''; formatEl.selectedIndex=0; totalStakeEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"ماشین‌حساب تریکسی - 3 انتخاب 4 شرط"},{"content":" میانگین اهداف خانه میانگین گل های خارج از خانه پیروزی خانگی - قرعه کشی کنید - برد دور - بالای 2.5 - زیر 2.5 - BTTS (بله) - احتمال نتیجه012345 بازنشانی کنید ","permalink":"https://calculators-odds.com/fa/poisson-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"poisson_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eمیانگین اهداف خانه\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-home\" type=\"text\" placeholder=\"1.5\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eمیانگین گل های خارج از خانه\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-away\" type=\"text\" placeholder=\"1.2\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eپیروزی خانگی\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-homewin\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eقرعه کشی کنید\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-draw\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eبرد دور\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-awaywin\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eبالای 2.5\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-over25\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eزیر 2.5\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-under25\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eBTTS (بله)\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-btts\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__table-wrap\"\u003e\n        \u003ctable class=\"calc-wrap__table js-scoretable\"\u003e\n            \u003cthead\u003e\u003ctr\u003e\u003cth\u003eاحتمال نتیجه\u003c/th\u003e\u003cth\u003e0\u003c/th\u003e\u003cth\u003e1\u003c/th\u003e\u003cth\u003e2\u003c/th\u003e\u003cth\u003e3\u003c/th\u003e\u003cth\u003e4\u003c/th\u003e\u003cth\u003e5\u003c/th\u003e\u003c/tr\u003e\u003c/thead\u003e\n            \u003ctbody\u003e\u003c/tbody\u003e\n        \u003c/table\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003eبازنشانی کنید\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var root = document.getElementById('poisson_0');\n    var homeEl = root.querySelector('.js-home');\n    var awayEl = root.querySelector('.js-away');\n    var homeWinEl = root.querySelector('.js-homewin');\n    var drawEl = root.querySelector('.js-draw');\n    var awayWinEl = root.querySelector('.js-awaywin');\n    var over25El = root.querySelector('.js-over25');\n    var under25El = root.querySelector('.js-under25');\n    var bttsEl = root.querySelector('.js-btts');\n    var tableEl = root.querySelector('.js-scoretable tbody');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function poisson(lambda, k) {\n        return (Math.pow(lambda, k) * Math.exp(-lambda)) / factorial(k);\n    }\n    function factorial(n) {\n        if (n \u003c= 1) return 1;\n        var r = 1; for (var i = 2; i \u003c= n; i++) r *= i; return r;\n    }\n\n    function update() {\n        var homeLambda = parseFloat(homeEl.value);\n        var awayLambda = parseFloat(awayEl.value);\n        if (isNaN(homeLambda) || isNaN(awayLambda) || homeLambda \u003c= 0 || awayLambda \u003c= 0) {\n            homeWinEl.textContent='-'; drawEl.textContent='-'; awayWinEl.textContent='-';\n            over25El.textContent='-'; under25El.textContent='-'; bttsEl.textContent='-';\n            tableEl.innerHTML=''; return;\n        }\n\n        var homeProbs = [], awayProbs = [];\n        for (var i = 0; i \u003c= 5; i++) {\n            homeProbs.push(poisson(homeLambda, i));\n            awayProbs.push(poisson(awayLambda, i));\n        }\n\n        var homeWin = 0, draw = 0, awayWin = 0, under25 = 0, btts = 0;\n        var html = '';\n        for (var h = 0; h \u003c= 5; h++) {\n            html += '\u003ctr\u003e\u003ctd\u003e\u003cstrong\u003e' + h + '\u003c/strong\u003e\u003c/td\u003e';\n            for (var a = 0; a \u003c= 5; a++) {\n                var p = homeProbs[h] * awayProbs[a];\n                html += '\u003ctd\u003e' + (p * 100).toFixed(1) + '%\u003c/td\u003e';\n                if (h \u003e a) homeWin += p;\n                else if (h === a) draw += p;\n                else awayWin += p;\n                if (h + a \u003c= 2) under25 += p;\n                if (h \u003e 0 \u0026\u0026 a \u003e 0) btts += p;\n            }\n            html += '\u003c/tr\u003e';\n        }\n\n        homeWinEl.textContent = (homeWin * 100).toFixed(1) + '%';\n        drawEl.textContent = (draw * 100).toFixed(1) + '%';\n        awayWinEl.textContent = (awayWin * 100).toFixed(1) + '%';\n        under25El.textContent = (under25 * 100).toFixed(1) + '%';\n        over25El.textContent = ((1 - under25) * 100).toFixed(1) + '%';\n        bttsEl.textContent = (btts * 100).toFixed(1) + '%';\n        tableEl.innerHTML = html;\n    }\n\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        homeEl.value=''; awayEl.value='';\n        homeWinEl.textContent='-'; drawEl.textContent='-'; awayWinEl.textContent='-';\n        over25El.textContent='-'; under25El.textContent='-'; bttsEl.textContent='-';\n        tableEl.innerHTML='';\n    });\n})();\n\u003c/script\u003e","title":"ماشین‌حساب توزیع پواسون - احتمالات گل"},{"content":" امتیاز تیزر 6 6.5 7 10 13 تعداد پاها 2 3 4 5 6 سهام شانس تیزر - پرداخت - سود - بازنشانی کنید ","permalink":"https://calculators-odds.com/fa/teaser-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"teaser_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eامتیاز تیزر\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-points\"\u003e\n            \u003coption value=\"6\"\u003e6\u003c/option\u003e\n            \u003coption value=\"6.5\"\u003e6.5\u003c/option\u003e\n            \u003coption value=\"7\"\u003e7\u003c/option\u003e\n            \u003coption value=\"10\"\u003e10\u003c/option\u003e\n            \u003coption value=\"13\"\u003e13\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eتعداد پاها\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-legs\"\u003e\n            \u003coption value=\"2\"\u003e2\u003c/option\u003e\n            \u003coption value=\"3\"\u003e3\u003c/option\u003e\n            \u003coption value=\"4\"\u003e4\u003c/option\u003e\n            \u003coption value=\"5\"\u003e5\u003c/option\u003e\n            \u003coption value=\"6\"\u003e6\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eسهام\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"100\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eشانس تیزر\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-odds\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eپرداخت\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eسود\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003eبازنشانی کنید\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var root = document.getElementById('teaser_0');\n    var pointsEl = root.querySelector('.js-points');\n    var legsEl = root.querySelector('.js-legs');\n    var stakeEl = root.querySelector('.js-stake');\n    var oddsEl = root.querySelector('.js-odds');\n    var payoutEl = root.querySelector('.js-payout');\n    var profitEl = root.querySelector('.js-profit');\n    var resetBtn = root.querySelector('.js-reset');\n\n    \n    var TEASER_ODDS = {\n        '6':    { 2: -110, 3: +160, 4: +260, 5: +400, 6: +600 },\n        '6.5':  { 2: -120, 3: +140, 4: +240, 5: +360, 6: +500 },\n        '7':    { 2: -130, 3: +120, 4: +200, 5: +320, 6: +450 },\n        '10':   { 2: -200, 3: -110, 4: +120, 5: +180, 6: +250 },\n        '13':   { 2: -350, 3: -170, 4: -110, 5: +110, 6: +150 }\n    };\n\n    function americanToDecimal(a) {\n        if (a \u003e 0) return (a / 100) + 1;\n        return (100 / Math.abs(a)) + 1;\n    }\n\n    function formatAmerican(a) {\n        return a \u003e 0 ? '+' + a : '' + a;\n    }\n\n    function update() {\n        var pts = pointsEl.value;\n        var legs = parseInt(legsEl.value);\n        var stake = parseFloat(stakeEl.value);\n        var americanOdd = TEASER_ODDS[pts][legs];\n        oddsEl.textContent = formatAmerican(americanOdd);\n        if (!stake || stake \u003c= 0) { payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n        var dec = americanToDecimal(americanOdd);\n        var payout = stake * dec;\n        payoutEl.textContent = formatNumber(payout);\n        profitEl.textContent = formatNumber(payout - stake);\n    }\n\n    pointsEl.addEventListener('change', update);\n    legsEl.addEventListener('change', update);\n    stakeEl.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        stakeEl.value=''; pointsEl.selectedIndex=0; legsEl.selectedIndex=0;\n        oddsEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-';\n    });\n    update();\n})();\n\u003c/script\u003e","title":"ماشین‌حساب تیزر - شرط تنظیم امتیاز"},{"content":" فرمت ضرایب اعشاری کسری آمریکایی تیم A شانس شانس تیم B معلولیت (حاشیه) سهام پرداخت (تیم A) - پرداخت (تیم B) - مسئله ضمنی A - مسئله ضمنی B - حاشیه بوک میکر - بازنشانی کنید ","permalink":"https://calculators-odds.com/fa/margin-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"margin_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eفرمت ضرایب\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003eاعشاری\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003eکسری\u003c/option\u003e\n            \u003coption value=\"American\"\u003eآمریکایی\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eتیم A شانس\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-oddsa\" type=\"text\" placeholder=\"1.80\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eشانس تیم B\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-oddsb\" type=\"text\" placeholder=\"2.10\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eمعلولیت (حاشیه)\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-handicap\" type=\"text\" placeholder=\"-1.5\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eسهام\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"100\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eپرداخت (تیم A)\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payouta\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eپرداخت (تیم B)\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payoutb\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eمسئله ضمنی A\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-proba\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eمسئله ضمنی B\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-probb\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eحاشیه بوک میکر\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-margin\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003eبازنشانی کنید\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var root = document.getElementById('margin_0');\n    var formatEl = root.querySelector('.js-format');\n    var oddsAEl = root.querySelector('.js-oddsa');\n    var oddsBEl = root.querySelector('.js-oddsb');\n    var handicapEl = root.querySelector('.js-handicap');\n    var stakeEl = root.querySelector('.js-stake');\n    var payoutAEl = root.querySelector('.js-payouta');\n    var payoutBEl = root.querySelector('.js-payoutb');\n    var probAEl = root.querySelector('.js-proba');\n    var probBEl = root.querySelector('.js-probb');\n    var marginEl = root.querySelector('.js-margin');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var format = formatEl.value;\n        var decA = convertToDecimal(oddsAEl.value.trim(), format);\n        var decB = convertToDecimal(oddsBEl.value.trim(), format);\n        var stake = parseFloat(stakeEl.value);\n\n        if (!decA) oddsAEl.classList.toggle('invalid', !!oddsAEl.value.trim());\n        else oddsAEl.classList.remove('invalid');\n        if (!decB) oddsBEl.classList.toggle('invalid', !!oddsBEl.value.trim());\n        else oddsBEl.classList.remove('invalid');\n\n        if (!decA || !decB) {\n            payoutAEl.textContent='-'; payoutBEl.textContent='-'; probAEl.textContent='-'; probBEl.textContent='-'; marginEl.textContent='-'; return;\n        }\n\n        var probA = (1 / decA) * 100;\n        var probB = (1 / decB) * 100;\n        var margin = (probA + probB) - 100;\n\n        probAEl.textContent = probA.toFixed(1) + '%';\n        probBEl.textContent = probB.toFixed(1) + '%';\n        marginEl.textContent = margin.toFixed(2) + '%';\n\n        if (stake \u0026\u0026 stake \u003e 0) {\n            payoutAEl.textContent = formatNumber(stake * decA);\n            payoutBEl.textContent = formatNumber(stake * decB);\n        } else {\n            payoutAEl.textContent = '-'; payoutBEl.textContent = '-';\n        }\n    }\n\n    formatEl.addEventListener('change', function() {\n        var ph = getOddsPlaceholder(formatEl.value);\n        oddsAEl.placeholder = ph; oddsBEl.placeholder = ph;\n        update();\n    });\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        oddsAEl.value=''; oddsBEl.value=''; handicapEl.value=''; stakeEl.value='';\n        formatEl.selectedIndex=0; oddsAEl.classList.remove('invalid'); oddsBEl.classList.remove('invalid');\n        payoutAEl.textContent='-'; payoutBEl.textContent='-'; probAEl.textContent='-'; probBEl.textContent='-'; marginEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"ماشین‌حساب حاشیه - برتری بوکمیکر"},{"content":" ماشین حساب Dutching مرحله 1: تنظیمات شرط فرمت ضرایب اعشاری کسری آمریکایی فرمت ضرایب برای ورود کل سهام کل مبلغ برای توزیع بین انتخاب‌ها مرحله 2: انتخاب‌های خود را وارد کنید # ضرایب مبلغ شرط بازگشت احتمال + انتخاب را اضافه کنید نتایج بازگشت بالقوه - سود - احتمال ضمنی - داچینگ شرط شما را توزیع می‌کند تا سود برابر را صرف نظر از انتخاب برنده تضمین کند. حداقل 2 انتخاب وارد کنید. بازنشانی ","permalink":"https://calculators-odds.com/fa/dutching-calculator/","summary":"\u003cstyle\u003e\n    .dutch {\n        margin: 15px 0;\n        background-color: #1e2328;\n        border-radius: 8px;\n        padding: 25px;\n        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n        color: #e8e8e8;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n    }\n\n    .dutch__title {\n        font-size: 24px;\n        font-weight: bold;\n        margin-bottom: 25px;\n        text-align: center;\n    }\n\n    .dutch__container {\n        width: 100%;\n        max-width: 800px;\n        display: flex;\n        flex-direction: column;\n        gap: 20px;\n    }\n\n    .dutch__section {\n        background: #2d333b;\n        padding: 20px;\n        border-radius: 8px;\n    }\n\n    .dutch__section-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #4CAF50;\n        color: #4CAF50;\n    }\n\n    .dutch__settings {\n        display: flex;\n        gap: 20px;\n        flex-wrap: wrap;\n    }\n\n    .dutch__input-group {\n        display: flex;\n        flex-direction: column;\n        flex: 1;\n        min-width: 150px;\n    }\n\n    .dutch__label {\n        font-size: 13px;\n        font-weight: bold;\n        margin-bottom: 6px;\n        color: #e8e8e8;\n    }\n\n    .dutch__input, .dutch__select {\n        background: rgba(0, 0, 0, 0.3);\n        color: #e8e8e8;\n        padding: 12px;\n        border: 1px solid rgba(255, 255, 255, 0.1);\n        border-radius: 4px;\n        font-size: 16px;\n        width: 100%;\n        box-sizing: border-box;\n        transition: border-color 0.2s;\n    }\n\n    .dutch__input:focus, .dutch__select:focus {\n        outline: none;\n        border-color: #4CAF50;\n    }\n\n    .dutch__input::placeholder {\n        color: rgba(232, 232, 232, 0.4);\n    }\n\n    .dutch__select {\n        cursor: pointer;\n    }\n\n    .dutch__select option {\n        background: #2d333b;\n        color: #e8e8e8;\n    }\n\n    .dutch__hint {\n        font-size: 11px;\n        color: rgba(232, 232, 232, 0.5);\n        margin-top: 4px;\n    }\n\n    .dutch__selections-header {\n        display: grid;\n        grid-template-columns: 40px 1fr 100px 100px 80px 70px;\n        gap: 10px;\n        padding: 10px 0;\n        border-bottom: 1px solid rgba(255,255,255,0.2);\n        font-weight: bold;\n        font-size: 12px;\n        color: rgba(232, 232, 232, 0.7);\n    }\n\n    .dutch__selection-row {\n        display: grid;\n        grid-template-columns: 40px 1fr 100px 100px 80px 70px;\n        gap: 10px;\n        padding: 12px 0;\n        border-bottom: 1px solid rgba(255,255,255,0.05);\n        align-items: center;\n    }\n\n    .dutch__selection-num {\n        font-weight: bold;\n        color: #4CAF50;\n        font-size: 14px;\n    }\n\n    .dutch__selection-input {\n        background: rgba(0, 0, 0, 0.3);\n        color: #e8e8e8;\n        padding: 10px;\n        border: 1px solid rgba(255, 255, 255, 0.1);\n        border-radius: 4px;\n        font-size: 14px;\n        width: 100%;\n        box-sizing: border-box;\n        transition: border-color 0.2s;\n    }\n\n    .dutch__selection-input:focus {\n        outline: none;\n        border-color: #4CAF50;\n    }\n\n    .dutch__selection-input::placeholder {\n        color: rgba(232, 232, 232, 0.4);\n    }\n\n    .dutch__selection-stake,\n    .dutch__selection-return,\n    .dutch__selection-prob {\n        font-weight: bold;\n        text-align: right;\n        font-size: 14px;\n    }\n\n    .dutch__selection-return {\n        color: #4CAF50;\n    }\n\n    .dutch__selection-prob {\n        color: rgba(232, 232, 232, 0.7);\n    }\n\n    .dutch__remove-btn {\n        background: rgba(244, 67, 54, 0.2);\n        color: #f44336;\n        border: 1px solid #f44336;\n        border-radius: 4px;\n        padding: 6px 10px;\n        cursor: pointer;\n        font-size: 11px;\n        transition: all 0.2s;\n    }\n\n    .dutch__remove-btn:hover {\n        background: #f44336;\n        color: white;\n    }\n\n    .dutch__add-btn {\n        margin-top: 15px;\n        padding: 12px 20px;\n        background: rgba(76, 175, 80, 0.2);\n        color: #4CAF50;\n        border: 1px solid #4CAF50;\n        border-radius: 4px;\n        cursor: pointer;\n        font-size: 14px;\n        transition: all 0.2s;\n    }\n\n    .dutch__add-btn:hover {\n        background: #4CAF50;\n        color: white;\n    }\n\n    .dutch__output-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #4CAF50;\n        color: #4CAF50;\n    }\n\n    .dutch__output-grid {\n        display: grid;\n        grid-template-columns: repeat(3, 1fr);\n        gap: 15px;\n    }\n\n    .dutch__output-item {\n        text-align: center;\n        padding: 15px;\n        background: rgba(255, 255, 255, 0.05);\n        border-radius: 6px;\n    }\n\n    .dutch__output-label {\n        font-size: 12px;\n        color: rgba(232, 232, 232, 0.7);\n        margin-bottom: 8px;\n    }\n\n    .dutch__output-value {\n        font-size: 24px;\n        font-weight: bold;\n    }\n\n    .dutch__output-value.positive {\n        color: #4CAF50;\n    }\n\n    .dutch__output-value.negative {\n        color: #f44336;\n    }\n\n    .dutch__output-value.warning {\n        color: #ff9800;\n    }\n\n    .dutch__info {\n        margin-top: 15px;\n        padding: 12px 15px;\n        background: rgba(33, 150, 243, 0.15);\n        border: 1px solid rgba(33, 150, 243, 0.3);\n        border-radius: 4px;\n        font-size: 13px;\n        text-align: center;\n        color: rgba(232, 232, 232, 0.8);\n    }\n\n    .dutch__reset {\n        margin-top: 20px;\n        padding: 12px 40px;\n        background-color: rgba(255, 255, 255, 0.1);\n        color: #e8e8e8;\n        border: 1px solid rgba(255, 255, 255, 0.2);\n        border-radius: 4px;\n        font-size: 14px;\n        cursor: pointer;\n        transition: all 0.2s;\n        align-self: center;\n    }\n\n    .dutch__reset:hover {\n        background-color: rgba(255, 255, 255, 0.2);\n    }\n\n    .invalid {\n        border: 2px solid #f44336 !important;\n    }\n\n    @media (max-width: 768px) {\n        .dutch__selections-header {\n            display: none;\n        }\n        .dutch__selection-row {\n            grid-template-columns: 30px 1fr 70px;\n            gap: 8px;\n            padding: 15px 0;\n        }\n        .dutch__selection-row .dutch__selection-stake,\n        .dutch__selection-row .dutch__selection-return,\n        .dutch__selection-row .dutch__selection-prob {\n            display: none;\n        }\n        .dutch__mobile-results {\n            grid-column: 2 / 3;\n            display: flex;\n            gap: 10px;\n            font-size: 12px;\n            margin-top: 5px;\n        }\n        .dutch__output-grid {\n            grid-template-columns: 1fr;\n        }\n        .dutch__settings {\n            flex-direction: column;\n        }\n    }\n\u003c/style\u003e\n\n\u003csection class=\"dutch\"\u003e\n    \u003cdiv class=\"dutch__title\"\u003eماشین حساب Dutching\u003c/div\u003e\n\n    \u003cdiv class=\"dutch__container\"\u003e\n        \n        \u003cdiv class=\"dutch__section\"\u003e\n            \u003cdiv class=\"dutch__section-title\"\u003eمرحله 1: تنظیمات شرط\u003c/div\u003e\n            \u003cdiv class=\"dutch__settings\"\u003e\n                \u003cdiv class=\"dutch__input-group\"\u003e\n                    \u003clabel class=\"dutch__label\"\u003eفرمت ضرایب\u003c/label\u003e\n                    \u003cselect class=\"dutch__select dutch__odds-type\"\u003e\n                        \u003coption value=\"Decimal\"\u003eاعشاری\u003c/option\u003e\n                        \u003coption value=\"Fractional\"\u003eکسری\u003c/option\u003e\n                        \u003coption value=\"American\"\u003eآمریکایی\u003c/option\u003e\n                    \u003c/select\u003e\n                    \u003cspan class=\"dutch__hint\"\u003eفرمت ضرایب برای ورود\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"dutch__input-group\"\u003e\n                    \u003clabel class=\"dutch__label\"\u003eکل سهام\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"dutch__input dutch__total-stake\" placeholder=\"100\" min=\"0\" step=\"0.01\" value=\"100\" /\u003e\n                    \u003cspan class=\"dutch__hint\"\u003eکل مبلغ برای توزیع بین انتخاب‌ها\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"dutch__section\"\u003e\n            \u003cdiv class=\"dutch__section-title\"\u003eمرحله 2: انتخاب‌های خود را وارد کنید\u003c/div\u003e\n            \u003cdiv class=\"dutch__selections-header\"\u003e\n                \u003cdiv\u003e#\u003c/div\u003e\n                \u003cdiv\u003eضرایب\u003c/div\u003e\n                \u003cdiv\u003eمبلغ شرط\u003c/div\u003e\n                \u003cdiv\u003eبازگشت\u003c/div\u003e\n                \u003cdiv\u003eاحتمال\u003c/div\u003e\n                \u003cdiv\u003e\u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"dutch__selections-list\"\u003e\n                \n            \u003c/div\u003e\n            \u003cbutton type=\"button\" class=\"dutch__add-btn\"\u003e+ انتخاب را اضافه کنید\u003c/button\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"dutch__section\"\u003e\n            \u003cdiv class=\"dutch__output-title\"\u003eنتایج\u003c/div\u003e\n            \u003cdiv class=\"dutch__output-grid\"\u003e\n                \u003cdiv class=\"dutch__output-item\"\u003e\n                    \u003cdiv class=\"dutch__output-label\"\u003eبازگشت بالقوه\u003c/div\u003e\n                    \u003cdiv class=\"dutch__output-value dutch__return-value\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"dutch__output-item\"\u003e\n                    \u003cdiv class=\"dutch__output-label\"\u003eسود\u003c/div\u003e\n                    \u003cdiv class=\"dutch__output-value dutch__profit-value\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"dutch__output-item\"\u003e\n                    \u003cdiv class=\"dutch__output-label\"\u003eاحتمال ضمنی\u003c/div\u003e\n                    \u003cdiv class=\"dutch__output-value dutch__probability-value\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"dutch__info\"\u003e\n                داچینگ شرط شما را توزیع می‌کند تا سود برابر را صرف نظر از انتخاب برنده تضمین کند. حداقل 2 انتخاب وارد کنید.\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \u003cbutton class=\"dutch__reset\" type=\"button\"\u003eبازنشانی\u003c/button\u003e\n    \u003c/div\u003e\n\u003c/section\u003e\n\n\u003cscript\u003e\n(function() {\n    const container = document.currentScript.previousElementSibling;\n\n    const oddsTypeSelect = container.querySelector('.dutch__odds-type');\n    const totalStakeInput = container.querySelector('.dutch__total-stake');\n    const selectionsList = container.querySelector('.dutch__selections-list');\n    const addBtn = container.querySelector('.dutch__add-btn');\n    const resetBtn = container.querySelector('.dutch__reset');\n\n    const returnValue = container.querySelector('.dutch__return-value');\n    const profitValue = container.querySelector('.dutch__profit-value');\n    const probabilityValue = container.querySelector('.dutch__probability-value');\n\n    let selectionCount = 0;\n\n    const placeholders = {\n        'Decimal': '2.50',\n        'Fractional': '3/2',\n        'American': '+150'\n    };\n\n    const hints = {\n        'Decimal': 'ضرایب اعشاری وارد کنید (مثلاً 2.50، 3.00)',\n        'Fractional': 'ضرایب کسری وارد کنید (مثلاً 3\\/2، 5\\/1)',\n        'American': 'ضرایب آمریکایی وارد کنید (مثلاً \\u002b150، -110)'\n    };\n\n    \n    function validateFractionalCoefficient(coefficient) {\n        return /^\\d+\\/\\d+$/.test(coefficient);\n    }\n\n    function validateDecimalCoefficient(coefficient) {\n        return /^\\d+(\\.\\d+)?$/.test(coefficient) \u0026\u0026 parseFloat(coefficient) \u003e 1;\n    }\n\n    function validateAmericanCoefficient(coefficient) {\n        return /^[-+]?\\d+$/.test(coefficient);\n    }\n\n    \n    function convertFractionToDecimal(fraction) {\n        const parts = fraction.split('/');\n        if (parts.length !== 2) return null;\n        const numerator = parseFloat(parts[0]);\n        const denominator = parseFloat(parts[1]);\n        if (isNaN(numerator) || isNaN(denominator) || denominator === 0) return null;\n        return (numerator / denominator) + 1;\n    }\n\n    function convertAmericanToDecimal(americanOdds) {\n        const oddsValue = parseFloat(americanOdds);\n        if (isNaN(oddsValue)) return null;\n        if (oddsValue \u003e 0) {\n            return (oddsValue / 100) + 1;\n        } else if (oddsValue \u003c 0) {\n            return (100 / Math.abs(oddsValue)) + 1;\n        }\n        return 2;\n    }\n\n    function getDecimalOdds(oddsString) {\n        const type = oddsTypeSelect.value;\n        const odds = oddsString.trim();\n\n        if (type === 'Fractional') {\n            if (!validateFractionalCoefficient(odds)) return null;\n            return convertFractionToDecimal(odds);\n        } else if (type === 'Decimal') {\n            if (!validateDecimalCoefficient(odds)) return null;\n            return parseFloat(odds);\n        } else if (type === 'American') {\n            if (!validateAmericanCoefficient(odds)) return null;\n            return convertAmericanToDecimal(odds);\n        }\n        return null;\n    }\n\n    function createSelectionRow() {\n        selectionCount++;\n        const row = document.createElement('div');\n        row.className = 'dutch__selection-row';\n        row.dataset.id = selectionCount;\n\n        const type = oddsTypeSelect.value;\n\n        row.innerHTML = `\n            \u003cdiv class=\"dutch__selection-num\"\u003e${selectionCount}\u003c/div\u003e\n            \u003cinput type=\"text\" class=\"dutch__selection-input dutch__odds-input\" placeholder=\"${placeholders[type]}\" title=\"${hints[type]}\" /\u003e\n            \u003cdiv class=\"dutch__selection-stake\"\u003e-\u003c/div\u003e\n            \u003cdiv class=\"dutch__selection-return\"\u003e-\u003c/div\u003e\n            \u003cdiv class=\"dutch__selection-prob\"\u003e-\u003c/div\u003e\n            \u003cbutton type=\"button\" class=\"dutch__remove-btn\"\u003e${'حذف کنید'}\u003c/button\u003e\n        `;\n\n        const oddsInput = row.querySelector('.dutch__odds-input');\n        const removeBtn = row.querySelector('.dutch__remove-btn');\n\n        oddsInput.addEventListener('input', calculate);\n        removeBtn.addEventListener('click', function() {\n            row.remove();\n            renumberSelections();\n            calculate();\n        });\n\n        return row;\n    }\n\n    function renumberSelections() {\n        const rows = selectionsList.querySelectorAll('.dutch__selection-row');\n        rows.forEach((row, index) =\u003e {\n            row.querySelector('.dutch__selection-num').textContent = index + 1;\n        });\n        selectionCount = rows.length;\n    }\n\n    function calculate() {\n        const totalStake = parseFloat(totalStakeInput.value);\n        const rows = selectionsList.querySelectorAll('.dutch__selection-row');\n\n        if (isNaN(totalStake) || totalStake \u003c= 0 || rows.length === 0) {\n            resetOutput();\n            return;\n        }\n\n        \n        const selections = [];\n\n        rows.forEach(row =\u003e {\n            const oddsInput = row.querySelector('.dutch__odds-input');\n            const decimalOdds = getDecimalOdds(oddsInput.value);\n\n            if (decimalOdds === null || decimalOdds \u003c= 1) {\n                if (oddsInput.value.trim() !== '') {\n                    oddsInput.classList.add('invalid');\n                } else {\n                    oddsInput.classList.remove('invalid');\n                }\n            } else {\n                oddsInput.classList.remove('invalid');\n                selections.push({\n                    row: row,\n                    odds: decimalOdds,\n                    impliedProb: 1 / decimalOdds\n                });\n            }\n        });\n\n        if (selections.length \u003c 2) {\n            resetOutput();\n            \n            rows.forEach(row =\u003e {\n                row.querySelector('.dutch__selection-stake').textContent = '-';\n                row.querySelector('.dutch__selection-return').textContent = '-';\n                row.querySelector('.dutch__selection-prob').textContent = '-';\n            });\n            return;\n        }\n\n        \n        const sumInverseOdds = selections.reduce((sum, sel) =\u003e sum + sel.impliedProb, 0);\n        const potentialReturn = totalStake / sumInverseOdds;\n\n        selections.forEach(sel =\u003e {\n            const stake = totalStake * sel.impliedProb / sumInverseOdds;\n            const returnAmount = stake * sel.odds;\n\n            sel.row.querySelector('.dutch__selection-stake').textContent = '$' + stake.toFixed(2);\n            sel.row.querySelector('.dutch__selection-return').textContent = '$' + returnAmount.toFixed(2);\n            sel.row.querySelector('.dutch__selection-prob').textContent = (sel.impliedProb * 100).toFixed(1) + '%';\n        });\n\n        \n        rows.forEach(row =\u003e {\n            if (!selections.find(s =\u003e s.row === row)) {\n                row.querySelector('.dutch__selection-stake').textContent = '-';\n                row.querySelector('.dutch__selection-return').textContent = '-';\n                row.querySelector('.dutch__selection-prob').textContent = '-';\n            }\n        });\n\n        const profit = potentialReturn - totalStake;\n        const combinedProbability = sumInverseOdds * 100;\n\n        returnValue.textContent = '$' + potentialReturn.toFixed(2);\n\n        profitValue.textContent = (profit \u003e= 0 ? '+$' : '-$') + Math.abs(profit).toFixed(2);\n        profitValue.className = 'dutch__output-value ' + (profit \u003e= 0 ? 'positive' : 'negative');\n\n        probabilityValue.textContent = combinedProbability.toFixed(1) + '%';\n        probabilityValue.className = 'dutch__output-value ' + (combinedProbability \u003c 100 ? 'positive' : (combinedProbability \u003e 100 ? 'negative' : 'warning'));\n    }\n\n    function resetOutput() {\n        returnValue.textContent = '-';\n        returnValue.className = 'dutch__output-value';\n        profitValue.textContent = '-';\n        profitValue.className = 'dutch__output-value';\n        probabilityValue.textContent = '-';\n        probabilityValue.className = 'dutch__output-value';\n    }\n\n    function resetAll() {\n        selectionsList.innerHTML = '';\n        selectionCount = 0;\n        totalStakeInput.value = '100';\n\n        \n        selectionsList.appendChild(createSelectionRow());\n        selectionsList.appendChild(createSelectionRow());\n\n        resetOutput();\n    }\n\n    \n    oddsTypeSelect.addEventListener('change', function() {\n        const type = this.value;\n\n        selectionsList.querySelectorAll('.dutch__odds-input').forEach(input =\u003e {\n            input.placeholder = placeholders[type];\n            input.title = hints[type];\n        });\n        calculate();\n    });\n\n    totalStakeInput.addEventListener('input', calculate);\n    addBtn.addEventListener('click', function() {\n        selectionsList.appendChild(createSelectionRow());\n    });\n    resetBtn.addEventListener('click', resetAll);\n\n    \n    selectionsList.appendChild(createSelectionRow());\n    selectionsList.appendChild(createSelectionRow());\n})();\n\u003c/script\u003e","title":"ماشین‌حساب داچینگ - شرط‌بندی چند نتیجه‌ای"},{"content":" فرمت ضرایب اعشاری کسری آمریکایی انتخاب 1 انتخاب 2 انتخاب 3 سهام واحد تعداد شرط ها 3 کل سهام - پرداخت - سود - بازنشانی کنید ","permalink":"https://calculators-odds.com/fa/round-robin-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"roundrobin_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eفرمت ضرایب\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003eاعشاری\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003eکسری\u003c/option\u003e\n            \u003coption value=\"American\"\u003eآمریکایی\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__selections\"\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 1\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 2\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 3\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eسهام واحد\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"10\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eتعداد شرط ها\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value\"\u003e3\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eکل سهام\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-totalstake\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eپرداخت\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eسود\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003eبازنشانی کنید\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var FOLDS = [2];\n    var root = document.getElementById('roundrobin_0');\n    var formatEl = root.querySelector('.js-format');\n    var stakeEl = root.querySelector('.js-stake');\n    var payoutEl = root.querySelector('.js-payout');\n    var profitEl = root.querySelector('.js-profit');\n    var totalStakeEl = root.querySelector('.js-totalstake');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var format = formatEl.value;\n        var inputs = root.querySelectorAll('.js-odds');\n        var odds = [], allValid = true;\n        inputs.forEach(function(input) {\n            var d = convertToDecimal(input.value.trim(), format);\n            if (d === null \u0026\u0026 input.value.trim()) { input.classList.add('invalid'); allValid = false; }\n            else { input.classList.remove('invalid'); if (d) odds.push(d); else allValid = false; }\n        });\n        var unitStake = parseFloat(stakeEl.value);\n        if (!allValid || !unitStake || unitStake \u003c= 0) { totalStakeEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n        var r = calcSystemBet(odds, unitStake, FOLDS);\n        totalStakeEl.textContent = formatNumber(r.totalStake);\n        payoutEl.textContent = formatNumber(r.totalPayout);\n        profitEl.textContent = formatNumber(r.totalPayout - r.totalStake);\n    }\n\n    formatEl.addEventListener('change', function() { root.querySelectorAll('.js-odds').forEach(function(i){i.placeholder=getOddsPlaceholder(formatEl.value);}); update(); });\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        root.querySelectorAll('.js-odds').forEach(function(i){i.value='';i.classList.remove('invalid');});\n        stakeEl.value=''; formatEl.selectedIndex=0; totalStakeEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"ماشین‌حساب راند رابین - پارلی‌های چندگانه"},{"content":" احتمال برد % طول رگه تعداد شرط ها Prob Streak Win - از دست دادن خط پروب - طولانی ترین مورد انتظار - بازنشانی کنید ","permalink":"https://calculators-odds.com/fa/streak-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"streak_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eاحتمال برد\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-prob\" type=\"text\" placeholder=\"50\" /\u003e\n        \u003cspan class=\"calc-wrap__unit\"\u003e%\u003c/span\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eطول رگه\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-length\" type=\"text\" placeholder=\"5\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eتعداد شرط ها\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-numbets\" type=\"text\" placeholder=\"100\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eProb Streak Win\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-winstreak\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eاز دست دادن خط پروب\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-losestreak\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eطولانی ترین مورد انتظار\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-expected\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003eبازنشانی کنید\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var root = document.getElementById('streak_0');\n    var probEl = root.querySelector('.js-prob');\n    var lengthEl = root.querySelector('.js-length');\n    var numBetsEl = root.querySelector('.js-numbets');\n    var winStreakEl = root.querySelector('.js-winstreak');\n    var loseStreakEl = root.querySelector('.js-losestreak');\n    var expectedEl = root.querySelector('.js-expected');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var prob = parseFloat(probEl.value) / 100;\n        var length = parseInt(lengthEl.value);\n        var numBets = parseInt(numBetsEl.value);\n\n        if (isNaN(prob) || prob \u003c= 0 || prob \u003e= 1 || isNaN(length) || length \u003c 1 || isNaN(numBets) || numBets \u003c 1) {\n            winStreakEl.textContent = '-'; loseStreakEl.textContent = '-'; expectedEl.textContent = '-'; return;\n        }\n\n        \n        var winStreakProb = Math.pow(prob, length);\n        var loseStreakProb = Math.pow(1 - prob, length);\n\n        \n        var winAtLeastOnce = 1 - Math.pow(1 - winStreakProb, Math.max(1, numBets - length + 1));\n        var loseAtLeastOnce = 1 - Math.pow(1 - loseStreakProb, Math.max(1, numBets - length + 1));\n\n        \n        var expectedLongest = Math.log(numBets) / Math.log(1 / prob);\n\n        winStreakEl.textContent = (winAtLeastOnce * 100).toFixed(1) + '%';\n        loseStreakEl.textContent = (loseAtLeastOnce * 100).toFixed(1) + '%';\n        expectedEl.textContent = expectedLongest.toFixed(1) + ' bets';\n    }\n\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        probEl.value=''; lengthEl.value=''; numBetsEl.value='';\n        winStreakEl.textContent='-'; loseStreakEl.textContent='-'; expectedEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"ماشین‌حساب سری - سری‌های برد/باخت"},{"content":" فرمت ضرایب اعشاری کسری آمریکایی انتخاب 1 انتخاب 2 انتخاب 3 انتخاب 4 انتخاب 5 انتخاب 6 انتخاب 7 سهام واحد تعداد شرط ها 120 کل سهام - پرداخت - سود - بازنشانی کنید ","permalink":"https://calculators-odds.com/fa/super-heinz-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"superheinz_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eفرمت ضرایب\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003eاعشاری\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003eکسری\u003c/option\u003e\n            \u003coption value=\"American\"\u003eآمریکایی\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__selections\"\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 1\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 2\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 3\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 4\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 5\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 6\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 7\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eسهام واحد\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"10\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eتعداد شرط ها\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value\"\u003e120\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eکل سهام\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-totalstake\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eپرداخت\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eسود\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003eبازنشانی کنید\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var FOLDS = [2, 3, 4, 5, 6, 7];\n    var root = document.getElementById('superheinz_0');\n    var formatEl = root.querySelector('.js-format');\n    var stakeEl = root.querySelector('.js-stake');\n    var payoutEl = root.querySelector('.js-payout');\n    var profitEl = root.querySelector('.js-profit');\n    var totalStakeEl = root.querySelector('.js-totalstake');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var format = formatEl.value;\n        var inputs = root.querySelectorAll('.js-odds');\n        var odds = [], allValid = true;\n        inputs.forEach(function(input) {\n            var d = convertToDecimal(input.value.trim(), format);\n            if (d === null \u0026\u0026 input.value.trim()) { input.classList.add('invalid'); allValid = false; }\n            else { input.classList.remove('invalid'); if (d) odds.push(d); else allValid = false; }\n        });\n        var unitStake = parseFloat(stakeEl.value);\n        if (!allValid || !unitStake || unitStake \u003c= 0) { totalStakeEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n        var r = calcSystemBet(odds, unitStake, FOLDS);\n        totalStakeEl.textContent = formatNumber(r.totalStake);\n        payoutEl.textContent = formatNumber(r.totalPayout);\n        profitEl.textContent = formatNumber(r.totalPayout - r.totalStake);\n    }\n\n    formatEl.addEventListener('change', function() { root.querySelectorAll('.js-odds').forEach(function(i){i.placeholder=getOddsPlaceholder(formatEl.value);}); update(); });\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        root.querySelectorAll('.js-odds').forEach(function(i){i.value='';i.classList.remove('invalid');});\n        stakeEl.value=''; formatEl.selectedIndex=0; totalStakeEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"ماشین‌حساب سوپر هاینز - 7 انتخاب 120 شرط"},{"content":" فرمت ضرایب اعشاری کسری آمریکایی انتخاب 1 انتخاب 2 انتخاب 3 سهام شانس ترکیبی - پرداخت - سود - بازنشانی کنید ","permalink":"https://calculators-odds.com/fa/treble-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"treble_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eفرمت ضرایب\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003eاعشاری\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003eکسری\u003c/option\u003e\n            \u003coption value=\"American\"\u003eآمریکایی\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__selections\"\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 1\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 2\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 3\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eسهام\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"100\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eشانس ترکیبی\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-combined\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eپرداخت\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eسود\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003eبازنشانی کنید\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    const root = document.getElementById('treble_0');\n    const formatEl = root.querySelector('.js-format');\n    const stakeEl = root.querySelector('.js-stake');\n    const combinedEl = root.querySelector('.js-combined');\n    const payoutEl = root.querySelector('.js-payout');\n    const profitEl = root.querySelector('.js-profit');\n    const resetBtn = root.querySelector('.js-reset');\n\n    function getOddsInputs() { return root.querySelectorAll('.js-odds'); }\n\n    function update() {\n        const format = formatEl.value;\n        const oddsInputs = getOddsInputs();\n        let combined = 1, allValid = true;\n\n        oddsInputs.forEach(function(input) {\n            const d = convertToDecimal(input.value.trim(), format);\n            if (d === null \u0026\u0026 input.value.trim()) { input.classList.add('invalid'); allValid = false; }\n            else { input.classList.remove('invalid'); }\n            if (d) combined *= d; else allValid = false;\n        });\n\n        const stake = parseFloat(stakeEl.value);\n        if (!allValid) { combinedEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n\n        combinedEl.textContent = combined.toFixed(2);\n        if (!stake || stake \u003c= 0) { payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n\n        const payout = combined * stake;\n        payoutEl.textContent = formatNumber(payout);\n        profitEl.textContent = formatNumber(payout - stake);\n    }\n\n    formatEl.addEventListener('change', function() {\n        getOddsInputs().forEach(i =\u003e i.placeholder = getOddsPlaceholder(formatEl.value));\n        update();\n    });\n    root.addEventListener('input', update);\n\n    resetBtn.addEventListener('click', function() {\n        getOddsInputs().forEach(i =\u003e { i.value = ''; i.classList.remove('invalid'); });\n        stakeEl.value = ''; formatEl.selectedIndex = 0;\n        combinedEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-';\n    });\n})();\n\u003c/script\u003e","title":"ماشین‌حساب سه‌تایی - بازده شرط 3 انتخابی"},{"content":" فرمت ضرایب اعشاری کسری آمریکایی شانس سهام قانون 4 خیر بله کسر 0p5p10p15p20p25p30p35p40p45p50p55p60p65p70p75p80p85p90p پرداخت - سود - بازنشانی کنید ","permalink":"https://calculators-odds.com/fa/single-bet-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"single_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eفرمت ضرایب\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003eاعشاری\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003eکسری\u003c/option\u003e\n            \u003coption value=\"American\"\u003eآمریکایی\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eشانس\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eسهام\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"100\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eقانون 4\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-rule4-toggle\"\u003e\n            \u003coption value=\"no\"\u003eخیر\u003c/option\u003e\n            \u003coption value=\"yes\"\u003eبله\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row calc-wrap__row--hidden js-rule4-row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eکسر\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-rule4-value\"\u003e\n            \u003coption value=\"0\"\u003e0p\u003c/option\u003e\u003coption value=\"5\"\u003e5p\u003c/option\u003e\u003coption value=\"10\"\u003e10p\u003c/option\u003e\u003coption value=\"15\"\u003e15p\u003c/option\u003e\u003coption value=\"20\"\u003e20p\u003c/option\u003e\u003coption value=\"25\"\u003e25p\u003c/option\u003e\u003coption value=\"30\"\u003e30p\u003c/option\u003e\u003coption value=\"35\"\u003e35p\u003c/option\u003e\u003coption value=\"40\"\u003e40p\u003c/option\u003e\u003coption value=\"45\"\u003e45p\u003c/option\u003e\u003coption value=\"50\"\u003e50p\u003c/option\u003e\u003coption value=\"55\"\u003e55p\u003c/option\u003e\u003coption value=\"60\"\u003e60p\u003c/option\u003e\u003coption value=\"65\"\u003e65p\u003c/option\u003e\u003coption value=\"70\"\u003e70p\u003c/option\u003e\u003coption value=\"75\"\u003e75p\u003c/option\u003e\u003coption value=\"80\"\u003e80p\u003c/option\u003e\u003coption value=\"85\"\u003e85p\u003c/option\u003e\u003coption value=\"90\"\u003e90p\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eپرداخت\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eسود\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003eبازنشانی کنید\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    const root = document.getElementById('single_0');\n    const formatEl = root.querySelector('.js-format');\n    const oddsEl = root.querySelector('.js-odds');\n    const stakeEl = root.querySelector('.js-stake');\n    const rule4Toggle = root.querySelector('.js-rule4-toggle');\n    const rule4Row = root.querySelector('.js-rule4-row');\n    const rule4Value = root.querySelector('.js-rule4-value');\n    const payoutEl = root.querySelector('.js-payout');\n    const profitEl = root.querySelector('.js-profit');\n    const resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        const format = formatEl.value;\n        const decimal = convertToDecimal(oddsEl.value.trim(), format);\n        const stake = parseFloat(stakeEl.value);\n\n        if (decimal === null) { oddsEl.classList.add('invalid'); }\n        else { oddsEl.classList.remove('invalid'); }\n\n        rule4Row.classList.toggle('calc-wrap__row--hidden', rule4Toggle.value !== 'yes');\n\n        if (!decimal || !stake || stake \u003c= 0) {\n            payoutEl.textContent = '-';\n            profitEl.textContent = '-';\n            return;\n        }\n\n        let payout = decimal * stake;\n        if (rule4Toggle.value === 'yes') {\n            const r4 = parseFloat(rule4Value.value) || 0;\n            const profit = payout - stake;\n            payout = stake + profit * (1 - r4 / 100);\n        }\n\n        const profit = payout - stake;\n        payoutEl.textContent = formatNumber(payout);\n        profitEl.textContent = formatNumber(profit);\n    }\n\n    formatEl.addEventListener('change', function() {\n        oddsEl.placeholder = getOddsPlaceholder(formatEl.value);\n        update();\n    });\n    [oddsEl, stakeEl].forEach(el =\u003e el.addEventListener('input', update));\n    [rule4Toggle, rule4Value].forEach(el =\u003e el.addEventListener('change', update));\n\n    resetBtn.addEventListener('click', function() {\n        oddsEl.value = ''; stakeEl.value = '';\n        formatEl.selectedIndex = 0; rule4Toggle.selectedIndex = 0; rule4Value.selectedIndex = 0;\n        oddsEl.classList.remove('invalid');\n        rule4Row.classList.add('calc-wrap__row--hidden');\n        payoutEl.textContent = '-'; profitEl.textContent = '-';\n    });\n})();\n\u003c/script\u003e","title":"ماشین‌حساب شرط تکی - بازده شرط ساده"},{"content":" فرمت ضرایب اعشاری کسری آمریکایی انتخاب 1 انتخاب 2 سهام شانس ترکیبی - پرداخت - سود - بازنشانی کنید ","permalink":"https://calculators-odds.com/fa/double-bet-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"double_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eفرمت ضرایب\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003eاعشاری\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003eکسری\u003c/option\u003e\n            \u003coption value=\"American\"\u003eآمریکایی\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__selections js-selections\"\u003e\n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 1\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 2\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eسهام\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"100\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eشانس ترکیبی\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-combined\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eپرداخت\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eسود\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003eبازنشانی کنید\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    const root = document.getElementById('double_0');\n    const formatEl = root.querySelector('.js-format');\n    const oddsInputs = root.querySelectorAll('.js-odds');\n    const stakeEl = root.querySelector('.js-stake');\n    const combinedEl = root.querySelector('.js-combined');\n    const payoutEl = root.querySelector('.js-payout');\n    const profitEl = root.querySelector('.js-profit');\n    const resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        const format = formatEl.value;\n        let combined = 1;\n        let allValid = true;\n\n        oddsInputs.forEach(function(input) {\n            const d = convertToDecimal(input.value.trim(), format);\n            if (d === null \u0026\u0026 input.value.trim()) { input.classList.add('invalid'); allValid = false; }\n            else { input.classList.remove('invalid'); }\n            if (d) combined *= d; else allValid = false;\n        });\n\n        const stake = parseFloat(stakeEl.value);\n\n        if (!allValid) {\n            combinedEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-';\n            return;\n        }\n\n        combinedEl.textContent = combined.toFixed(2);\n        if (!stake || stake \u003c= 0) { payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n\n        const payout = combined * stake;\n        payoutEl.textContent = formatNumber(payout);\n        profitEl.textContent = formatNumber(payout - stake);\n    }\n\n    formatEl.addEventListener('change', function() {\n        oddsInputs.forEach(i =\u003e i.placeholder = getOddsPlaceholder(formatEl.value));\n        update();\n    });\n    oddsInputs.forEach(el =\u003e el.addEventListener('input', update));\n    stakeEl.addEventListener('input', update);\n\n    resetBtn.addEventListener('click', function() {\n        oddsInputs.forEach(i =\u003e { i.value = ''; i.classList.remove('invalid'); });\n        stakeEl.value = ''; formatEl.selectedIndex = 0;\n        combinedEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-';\n    });\n})();\n\u003c/script\u003e","title":"ماشین‌حساب شرط دوتایی - بازده شرط 2 انتخابی"},{"content":" نوع رویداد 2 طرفه (1-2) 3 راه (1-X-2) فرمت ضرایب اعشاری کسری آمریکایی کل سهام نتیجه 1 قرعه کشی کنید (X) نتیجه 2 حاشیه - سهام 1 - سهام X - سهام 2 - سود - بازنشانی کنید ","permalink":"https://calculators-odds.com/fa/surebet-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"surebet_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eنوع رویداد\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-eventtype\"\u003e\n            \u003coption value=\"2\"\u003e2 طرفه (1-2)\u003c/option\u003e\n            \u003coption value=\"3\"\u003e3 راه (1-X-2)\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eفرمت ضرایب\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003eاعشاری\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003eکسری\u003c/option\u003e\n            \u003coption value=\"American\"\u003eآمریکایی\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eکل سهام\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-totalstake\" type=\"text\" placeholder=\"1000\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__grid calc-wrap__grid--3 js-oddsgrid\"\u003e\n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eنتیجه 1\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds1\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__row calc-wrap__row--hidden js-xrow\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eقرعه کشی کنید (X)\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-oddsx\" type=\"text\" placeholder=\"3.50\" /\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eنتیجه 2\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds2\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eحاشیه\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-margin\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item js-result-msg\" style=\"display:none\"\u003e\n            \u003cspan class=\"calc-wrap__result-value js-msg\"\u003e\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results js-stakes-output\" style=\"display:none\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eسهام 1\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-s1\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item js-sx-item\" style=\"display:none\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eسهام X\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-sx\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eسهام 2\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-s2\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eسود\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003eبازنشانی کنید\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var root = document.getElementById('surebet_0');\n    var eventTypeEl = root.querySelector('.js-eventtype');\n    var formatEl = root.querySelector('.js-format');\n    var totalStakeEl = root.querySelector('.js-totalstake');\n    var odds1El = root.querySelector('.js-odds1');\n    var oddsXEl = root.querySelector('.js-oddsx');\n    var odds2El = root.querySelector('.js-odds2');\n    var xRow = root.querySelector('.js-xrow');\n    var marginEl = root.querySelector('.js-margin');\n    var msgContainer = root.querySelector('.js-result-msg');\n    var msgEl = root.querySelector('.js-msg');\n    var stakesOutput = root.querySelector('.js-stakes-output');\n    var s1El = root.querySelector('.js-s1');\n    var sxEl = root.querySelector('.js-sx');\n    var sxItem = root.querySelector('.js-sx-item');\n    var s2El = root.querySelector('.js-s2');\n    var profitEl = root.querySelector('.js-profit');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var format = formatEl.value;\n        var is3way = eventTypeEl.value === '3';\n        xRow.classList.toggle('calc-wrap__row--hidden', !is3way);\n        sxItem.style.display = is3way ? '' : 'none';\n\n        var d1 = convertToDecimal(odds1El.value.trim(), format);\n        var d2 = convertToDecimal(odds2El.value.trim(), format);\n        var dx = is3way ? convertToDecimal(oddsXEl.value.trim(), format) : null;\n\n        [odds1El, odds2El, oddsXEl].forEach(function(el) { el.classList.remove('invalid'); });\n        if (odds1El.value.trim() \u0026\u0026 !d1) odds1El.classList.add('invalid');\n        if (odds2El.value.trim() \u0026\u0026 !d2) odds2El.classList.add('invalid');\n        if (is3way \u0026\u0026 oddsXEl.value.trim() \u0026\u0026 !dx) oddsXEl.classList.add('invalid');\n\n        if (!d1 || !d2 || (is3way \u0026\u0026 !dx)) {\n            marginEl.textContent = '-'; msgContainer.style.display = 'none'; stakesOutput.style.display = 'none';\n            return;\n        }\n\n        var invertedSum = 1/d1 + 1/d2;\n        if (is3way) invertedSum += 1/dx;\n\n        var margin = (1 - invertedSum) * 100;\n        marginEl.textContent = margin.toFixed(2) + '%';\n\n        msgContainer.style.display = '';\n        if (margin \u003e 0) {\n            marginEl.style.color = '#4CAF50';\n            msgEl.textContent = 'Surebet پیدا شد! سود تضمینی امکان پذیر است.';\n            msgEl.style.color = '#4CAF50';\n        } else {\n            marginEl.style.color = '#f44336';\n            msgEl.textContent = 'بدون شرط مطمئن این شانس ها منجر به باخت می شود.';\n            msgEl.style.color = '#f44336';\n        }\n\n        var totalStake = parseFloat(totalStakeEl.value);\n        if (!totalStake || totalStake \u003c= 0) { stakesOutput.style.display = 'none'; return; }\n\n        stakesOutput.style.display = '';\n        var stake1 = (totalStake / invertedSum) * (1/d1);\n        var stake2 = (totalStake / invertedSum) * (1/d2);\n        s1El.textContent = formatNumber(stake1);\n        s2El.textContent = formatNumber(stake2);\n\n        if (is3way) {\n            var stakeX = (totalStake / invertedSum) * (1/dx);\n            sxEl.textContent = formatNumber(stakeX);\n        }\n\n        var payout = totalStake / invertedSum;\n        profitEl.textContent = formatNumber(payout - totalStake);\n    }\n\n    eventTypeEl.addEventListener('change', update);\n    formatEl.addEventListener('change', function() {\n        var ph = getOddsPlaceholder(formatEl.value);\n        [odds1El, odds2El, oddsXEl].forEach(function(el){el.placeholder=ph;});\n        update();\n    });\n    [odds1El, odds2El, oddsXEl, totalStakeEl].forEach(function(el){el.addEventListener('input', update);});\n\n    resetBtn.addEventListener('click', function() {\n        odds1El.value=''; odds2El.value=''; oddsXEl.value=''; totalStakeEl.value='';\n        formatEl.selectedIndex=0; eventTypeEl.selectedIndex=0;\n        [odds1El, odds2El, oddsXEl].forEach(function(el){el.classList.remove('invalid');});\n        marginEl.textContent='-'; msgContainer.style.display='none'; stakesOutput.style.display='none';\n    });\n})();\n\u003c/script\u003e","title":"ماشین‌حساب شرط مطمئن - سود تضمینی"},{"content":" ماشین حساب شرط بندی همسان مرحله 1: نوع شرط را انتخاب کنید بین شرط واجد شرایط (اولیه) یا شرط رایگان (جایزه) انتخاب کنید شرط‌بندی واجد شرایط شرط بندی رایگان؟ Free Bet Type سهام بازگردانده نشده (SNR) سهام برگشت داده شده (SR) SNR = فقط سود برگشت داده می‌شود، SR = پرداخت کامل شامل مبلغ شرط مرحله 2: ضرایب و مبلغ را وارد کنید شانس برگشت (بوکمیکر) ضرایب اعشاری در بوکمیکر (مثال 3.00) شانس (صرافی) ضرایب اعشاری در صرافی (مثال 3.10) پشتیبان مبلغ برای شرط‌بندی در بوکمیکر کمیسیون بورس (%) کمیسیون صرافی (Betfair ~5%، Smarkets ~2%) نتایج سهام بگذارید - مسئولیت پذیرفتن - سود در صورت بازگشت برنده - اگر لای برنده شد سود کنید - باخت واجد شرایط - رتبه بندی: - شرط‌بندی تطبیقی با بک در بوکمیکر و لی در صرافی سود را تضمین می‌کند. شانس‌های نزدیک‌تر = ضرر کمتر/سود بیشتر. بازنشانی ","permalink":"https://calculators-odds.com/fa/matched-betting-calculator/","summary":"\u003cstyle\u003e\n    .matched {\n        margin: 15px 0;\n        background-color: #1e2328;\n        border-radius: 8px;\n        padding: 25px;\n        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n        color: #e8e8e8;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n    }\n\n    .matched__title {\n        font-size: 24px;\n        font-weight: bold;\n        margin-bottom: 25px;\n        text-align: center;\n    }\n\n    .matched__container {\n        width: 100%;\n        max-width: 700px;\n        display: flex;\n        flex-direction: column;\n        gap: 20px;\n    }\n\n    .matched__section {\n        background: #2d333b;\n        color: #e8e8e8;\n        padding: 20px;\n        border-radius: 8px;\n    }\n\n    .matched__section-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #2196F3;\n        color: #2196F3;\n    }\n\n    .matched__type-tabs {\n        display: flex;\n        gap: 10px;\n        margin-bottom: 15px;\n    }\n\n    .matched__type-tab {\n        flex: 1;\n        padding: 14px;\n        border: 2px solid #2196F3;\n        background: transparent;\n        color: #e8e8e8;\n        border-radius: 4px;\n        cursor: pointer;\n        font-size: 14px;\n        font-weight: bold;\n        transition: all 0.2s;\n    }\n\n    .matched__type-tab:hover {\n        background: rgba(33, 150, 243, 0.2);\n    }\n\n    .matched__type-tab.active {\n        background: #2196F3;\n        color: #fff;\n    }\n\n    .matched__type-hint {\n        font-size: 11px;\n        color: rgba(232, 232, 232, 0.5);\n        text-align: center;\n        margin-bottom: 10px;\n    }\n\n    .matched__row {\n        display: flex;\n        gap: 15px;\n        margin-bottom: 15px;\n        flex-wrap: wrap;\n    }\n\n    .matched__row:last-child {\n        margin-bottom: 0;\n    }\n\n    .matched__input-group {\n        display: flex;\n        flex-direction: column;\n        flex: 1;\n        min-width: 140px;\n    }\n\n    .matched__label {\n        font-size: 13px;\n        font-weight: bold;\n        margin-bottom: 6px;\n        color: #e8e8e8;\n    }\n\n    .matched__input, .matched__select {\n        background: rgba(0, 0, 0, 0.3);\n        color: #e8e8e8;\n        padding: 12px;\n        border: 1px solid rgba(255, 255, 255, 0.1);\n        border-radius: 4px;\n        font-size: 16px;\n        width: 100%;\n        box-sizing: border-box;\n        transition: border-color 0.2s;\n    }\n\n    .matched__input:focus, .matched__select:focus {\n        outline: none;\n        border-color: #2196F3;\n    }\n\n    .matched__input::placeholder {\n        color: rgba(232, 232, 232, 0.4);\n    }\n\n    .matched__select {\n        cursor: pointer;\n    }\n\n    .matched__select option {\n        background: #2d333b;\n        color: #e8e8e8;\n    }\n\n    .matched__hint {\n        font-size: 11px;\n        color: rgba(232, 232, 232, 0.5);\n        margin-top: 4px;\n    }\n\n    .matched__free-bet-options {\n        display: none;\n        margin-top: 15px;\n        padding-top: 15px;\n        border-top: 1px solid rgba(255,255,255,0.1);\n    }\n\n    .matched__free-bet-options.active {\n        display: block;\n    }\n\n    .matched__output-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #4CAF50;\n        color: #4CAF50;\n    }\n\n    .matched__output-grid {\n        display: grid;\n        grid-template-columns: repeat(2, 1fr);\n        gap: 15px;\n    }\n\n    .matched__output-item {\n        text-align: center;\n        padding: 15px;\n        background: rgba(255, 255, 255, 0.05);\n        border-radius: 6px;\n    }\n\n    .matched__output-item.highlight {\n        background: rgba(76, 175, 80, 0.15);\n        border: 2px solid #4CAF50;\n    }\n\n    .matched__output-label {\n        font-size: 12px;\n        color: rgba(232, 232, 232, 0.7);\n        margin-bottom: 8px;\n    }\n\n    .matched__output-value {\n        font-size: 20px;\n        font-weight: bold;\n    }\n\n    .matched__output-value.positive {\n        color: #4CAF50;\n    }\n\n    .matched__output-value.negative {\n        color: #f44336;\n    }\n\n    .matched__profit-box {\n        margin-top: 15px;\n        padding: 20px;\n        border-radius: 8px;\n        text-align: center;\n    }\n\n    .matched__profit-box.qualifying {\n        background: rgba(255, 152, 0, 0.15);\n        border: 2px solid #ff9800;\n    }\n\n    .matched__profit-box.freebet {\n        background: rgba(76, 175, 80, 0.15);\n        border: 2px solid #4CAF50;\n    }\n\n    .matched__profit-label {\n        font-size: 14px;\n        margin-bottom: 8px;\n        color: rgba(232, 232, 232, 0.8);\n    }\n\n    .matched__profit-value {\n        font-size: 28px;\n        font-weight: bold;\n    }\n\n    .matched__profit-box.qualifying .matched__profit-value {\n        color: #ff9800;\n    }\n\n    .matched__profit-box.freebet .matched__profit-value {\n        color: #4CAF50;\n    }\n\n    .matched__rating {\n        margin-top: 15px;\n        padding: 10px;\n        background: rgba(255, 255, 255, 0.05);\n        border-radius: 4px;\n        font-size: 14px;\n        text-align: center;\n    }\n\n    .matched__rating-value {\n        font-weight: bold;\n        color: #4CAF50;\n    }\n\n    .matched__info {\n        margin-top: 15px;\n        padding: 12px 15px;\n        background: rgba(33, 150, 243, 0.15);\n        border: 1px solid rgba(33, 150, 243, 0.3);\n        border-radius: 4px;\n        font-size: 13px;\n        text-align: center;\n        color: rgba(232, 232, 232, 0.8);\n    }\n\n    .matched__reset {\n        margin-top: 20px;\n        padding: 12px 40px;\n        background-color: rgba(255, 255, 255, 0.1);\n        color: #e8e8e8;\n        border: 1px solid rgba(255, 255, 255, 0.2);\n        border-radius: 4px;\n        font-size: 14px;\n        cursor: pointer;\n        transition: all 0.2s;\n        align-self: center;\n    }\n\n    .matched__reset:hover {\n        background-color: rgba(255, 255, 255, 0.2);\n    }\n\n    .invalid {\n        border: 2px solid #f44336 !important;\n    }\n\n    @media (max-width: 600px) {\n        .matched__row {\n            flex-direction: column;\n        }\n        .matched__output-grid {\n            grid-template-columns: 1fr;\n        }\n        .matched__type-tabs {\n            flex-direction: column;\n        }\n    }\n\u003c/style\u003e\n\n\u003csection class=\"matched\"\u003e\n    \u003cdiv class=\"matched__title\"\u003eماشین حساب شرط بندی همسان\u003c/div\u003e\n\n    \u003cdiv class=\"matched__container\"\u003e\n        \n        \u003cdiv class=\"matched__section\"\u003e\n            \u003cdiv class=\"matched__section-title\"\u003eمرحله 1: نوع شرط را انتخاب کنید\u003c/div\u003e\n            \u003cdiv class=\"matched__type-hint\"\u003eبین شرط واجد شرایط (اولیه) یا شرط رایگان (جایزه) انتخاب کنید\u003c/div\u003e\n            \u003cdiv class=\"matched__type-tabs\"\u003e\n                \u003cbutton type=\"button\" class=\"matched__type-tab active\" data-type=\"qualifying\"\u003eشرط‌بندی واجد شرایط\u003c/button\u003e\n                \u003cbutton type=\"button\" class=\"matched__type-tab\" data-type=\"freebet\"\u003eشرط بندی رایگان؟\u003c/button\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"matched__free-bet-options\"\u003e\n                \u003cdiv class=\"matched__row\"\u003e\n                    \u003cdiv class=\"matched__input-group\"\u003e\n                        \u003clabel class=\"matched__label\"\u003eFree Bet Type\u003c/label\u003e\n                        \u003cselect class=\"matched__select matched__freebet-type\"\u003e\n                            \u003coption value=\"snr\"\u003eسهام بازگردانده نشده (SNR)\u003c/option\u003e\n                            \u003coption value=\"sr\"\u003eسهام برگشت داده شده (SR)\u003c/option\u003e\n                        \u003c/select\u003e\n                        \u003cspan class=\"matched__hint\"\u003eSNR = فقط سود برگشت داده می‌شود، SR = پرداخت کامل شامل مبلغ شرط\u003c/span\u003e\n                    \u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"matched__section\"\u003e\n            \u003cdiv class=\"matched__section-title\"\u003eمرحله 2: ضرایب و مبلغ را وارد کنید\u003c/div\u003e\n            \u003cdiv class=\"matched__row\"\u003e\n                \u003cdiv class=\"matched__input-group\"\u003e\n                    \u003clabel class=\"matched__label\"\u003eشانس برگشت (بوکمیکر)\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"matched__input matched__back-odds\" placeholder=\"3.00\" min=\"1.01\" step=\"0.01\" /\u003e\n                    \u003cspan class=\"matched__hint\"\u003eضرایب اعشاری در بوکمیکر (مثال 3.00)\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"matched__input-group\"\u003e\n                    \u003clabel class=\"matched__label\"\u003eشانس (صرافی)\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"matched__input matched__lay-odds\" placeholder=\"3.10\" min=\"1.01\" step=\"0.01\" /\u003e\n                    \u003cspan class=\"matched__hint\"\u003eضرایب اعشاری در صرافی (مثال 3.10)\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"matched__row\"\u003e\n                \u003cdiv class=\"matched__input-group\"\u003e\n                    \u003clabel class=\"matched__label\"\u003eپشتیبان\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"matched__input matched__back-stake\" placeholder=\"10.00\" min=\"0\" step=\"0.01\" /\u003e\n                    \u003cspan class=\"matched__hint\"\u003eمبلغ برای شرط‌بندی در بوکمیکر\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"matched__input-group\"\u003e\n                    \u003clabel class=\"matched__label\"\u003eکمیسیون بورس (%)\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"matched__input matched__commission\" placeholder=\"5\" value=\"5\" min=\"0\" max=\"100\" step=\"0.1\" /\u003e\n                    \u003cspan class=\"matched__hint\"\u003eکمیسیون صرافی (Betfair ~5%، Smarkets ~2%)\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"matched__section\"\u003e\n            \u003cdiv class=\"matched__output-title\"\u003eنتایج\u003c/div\u003e\n            \u003cdiv class=\"matched__output-grid\"\u003e\n                \u003cdiv class=\"matched__output-item highlight\"\u003e\n                    \u003cdiv class=\"matched__output-label\"\u003eسهام بگذارید\u003c/div\u003e\n                    \u003cdiv class=\"matched__output-value matched__lay-stake-result\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"matched__output-item\"\u003e\n                    \u003cdiv class=\"matched__output-label\"\u003eمسئولیت پذیرفتن\u003c/div\u003e\n                    \u003cdiv class=\"matched__output-value matched__liability-result\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"matched__output-item\"\u003e\n                    \u003cdiv class=\"matched__output-label\"\u003eسود در صورت بازگشت برنده\u003c/div\u003e\n                    \u003cdiv class=\"matched__output-value matched__profit-back\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"matched__output-item\"\u003e\n                    \u003cdiv class=\"matched__output-label\"\u003eاگر لای برنده شد سود کنید\u003c/div\u003e\n                    \u003cdiv class=\"matched__output-value matched__profit-lay\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"matched__profit-box qualifying\"\u003e\n                \u003cdiv class=\"matched__profit-label matched__main-label\"\u003eباخت واجد شرایط\u003c/div\u003e\n                \u003cdiv class=\"matched__profit-value matched__main-result\"\u003e-\u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"matched__rating\"\u003e\n                رتبه بندی: \u003cspan class=\"matched__rating-value\"\u003e-\u003c/span\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"matched__info\"\u003e\n                شرط‌بندی تطبیقی با بک در بوکمیکر و لی در صرافی سود را تضمین می‌کند. شانس‌های نزدیک‌تر = ضرر کمتر/سود بیشتر.\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \u003cbutton class=\"matched__reset\" type=\"button\"\u003eبازنشانی\u003c/button\u003e\n    \u003c/div\u003e\n\u003c/section\u003e\n\n\u003cscript\u003e\n(function() {\n    const container = document.currentScript.previousElementSibling;\n\n    const typeTabs = container.querySelectorAll('.matched__type-tab');\n    const freeBetOptions = container.querySelector('.matched__free-bet-options');\n    const freeBetTypeSelect = container.querySelector('.matched__freebet-type');\n\n    const backOddsInput = container.querySelector('.matched__back-odds');\n    const layOddsInput = container.querySelector('.matched__lay-odds');\n    const backStakeInput = container.querySelector('.matched__back-stake');\n    const commissionInput = container.querySelector('.matched__commission');\n\n    const layStakeResult = container.querySelector('.matched__lay-stake-result');\n    const liabilityResult = container.querySelector('.matched__liability-result');\n    const profitBackEl = container.querySelector('.matched__profit-back');\n    const profitLayEl = container.querySelector('.matched__profit-lay');\n    const profitBox = container.querySelector('.matched__profit-box');\n    const mainLabel = container.querySelector('.matched__main-label');\n    const mainResult = container.querySelector('.matched__main-result');\n    const ratingValue = container.querySelector('.matched__rating-value');\n\n    const resetBtn = container.querySelector('.matched__reset');\n\n    let betType = 'qualifying';\n\n    function calculate() {\n        const backOdds = parseFloat(backOddsInput.value);\n        const layOdds = parseFloat(layOddsInput.value);\n        const backStake = parseFloat(backStakeInput.value);\n        const commission = parseFloat(commissionInput.value) / 100;\n\n        \n        if (isNaN(backOdds) || backOdds \u003c= 1) {\n            if (backOddsInput.value.trim() !== '') {\n                backOddsInput.classList.add('invalid');\n            }\n            resetOutput();\n            return;\n        } else {\n            backOddsInput.classList.remove('invalid');\n        }\n\n        if (isNaN(layOdds) || layOdds \u003c= 1) {\n            if (layOddsInput.value.trim() !== '') {\n                layOddsInput.classList.add('invalid');\n            }\n            resetOutput();\n            return;\n        } else {\n            layOddsInput.classList.remove('invalid');\n        }\n\n        if (isNaN(backStake) || backStake \u003c= 0) {\n            resetOutput();\n            return;\n        }\n\n        const commissionRate = isNaN(commission) ? 0.05 : commission;\n\n        let layStake, liability, profitBack, profitLay, mainProfit, rating;\n\n        if (betType === 'qualifying') {\n            \n            layStake = (backStake * backOdds) / (layOdds - commissionRate);\n            liability = layStake * (layOdds - 1);\n\n            \n            profitBack = backStake * (backOdds - 1) - liability;\n\n            \n            profitLay = layStake * (1 - commissionRate) - backStake;\n\n            mainProfit = Math.min(profitBack, profitLay);\n            rating = ((Math.abs(mainProfit) / backStake) * 100).toFixed(2);\n\n            mainLabel.textContent = 'باخت واجد شرایط';\n            profitBox.classList.remove('freebet');\n            profitBox.classList.add('qualifying');\n        } else {\n            \n            const freeBetType = freeBetTypeSelect.value;\n\n            if (freeBetType === 'snr') {\n                \n                layStake = (backStake * (backOdds - 1)) / (layOdds - commissionRate);\n                liability = layStake * (layOdds - 1);\n\n                \n                profitBack = backStake * (backOdds - 1) - liability;\n\n                \n                profitLay = layStake * (1 - commissionRate);\n\n            } else {\n                \n                layStake = (backStake * backOdds) / (layOdds - commissionRate);\n                liability = layStake * (layOdds - 1);\n\n                profitBack = backStake * (backOdds - 1) - liability;\n                profitLay = layStake * (1 - commissionRate);\n            }\n\n            mainProfit = Math.min(profitBack, profitLay);\n            rating = ((mainProfit / backStake) * 100).toFixed(2);\n\n            mainLabel.textContent = 'Guaranteed Profit';\n            profitBox.classList.remove('qualifying');\n            profitBox.classList.add('freebet');\n        }\n\n        \n        layStakeResult.textContent = '$' + layStake.toFixed(2);\n        liabilityResult.textContent = '$' + liability.toFixed(2);\n\n        profitBackEl.textContent = (profitBack \u003e= 0 ? '+$' : '-$') + Math.abs(profitBack).toFixed(2);\n        profitBackEl.className = 'matched__output-value ' + (profitBack \u003e= 0 ? 'positive' : 'negative');\n\n        profitLayEl.textContent = (profitLay \u003e= 0 ? '+$' : '-$') + Math.abs(profitLay).toFixed(2);\n        profitLayEl.className = 'matched__output-value ' + (profitLay \u003e= 0 ? 'positive' : 'negative');\n\n        mainResult.textContent = (mainProfit \u003e= 0 ? '+$' : '-$') + Math.abs(mainProfit).toFixed(2);\n        ratingValue.textContent = rating + '%';\n    }\n\n    function resetOutput() {\n        layStakeResult.textContent = '-';\n        liabilityResult.textContent = '-';\n        profitBackEl.textContent = '-';\n        profitBackEl.className = 'matched__output-value';\n        profitLayEl.textContent = '-';\n        profitLayEl.className = 'matched__output-value';\n        mainResult.textContent = '-';\n        ratingValue.textContent = '-';\n    }\n\n    function resetAll() {\n        backOddsInput.value = '';\n        layOddsInput.value = '';\n        backStakeInput.value = '';\n        commissionInput.value = '5';\n        backOddsInput.classList.remove('invalid');\n        layOddsInput.classList.remove('invalid');\n\n        typeTabs.forEach(tab =\u003e tab.classList.remove('active'));\n        typeTabs[0].classList.add('active');\n        betType = 'qualifying';\n        freeBetOptions.classList.remove('active');\n\n        mainLabel.textContent = 'باخت واجد شرایط';\n        profitBox.classList.remove('freebet');\n        profitBox.classList.add('qualifying');\n\n        resetOutput();\n    }\n\n    \n    typeTabs.forEach(tab =\u003e {\n        tab.addEventListener('click', function() {\n            typeTabs.forEach(t =\u003e t.classList.remove('active'));\n            this.classList.add('active');\n            betType = this.dataset.type;\n\n            if (betType === 'freebet') {\n                freeBetOptions.classList.add('active');\n            } else {\n                freeBetOptions.classList.remove('active');\n            }\n            calculate();\n        });\n    });\n\n    backOddsInput.addEventListener('input', calculate);\n    layOddsInput.addEventListener('input', calculate);\n    backStakeInput.addEventListener('input', calculate);\n    commissionInput.addEventListener('input', calculate);\n    freeBetTypeSelect.addEventListener('change', calculate);\n\n    resetBtn.addEventListener('click', resetAll);\n})();\n\u003c/script\u003e","title":"ماشین‌حساب شرط‌بندی تطبیقی - سود شرط رایگان"},{"content":" فرمت ضرایب اعشاری کسری آمریکایی شانس سهام پرداخت - سود - احتمال ضمنی - بازنشانی کنید ","permalink":"https://calculators-odds.com/fa/betting-odds-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"bkcoeff_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eفرمت ضرایب\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003eاعشاری\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003eکسری\u003c/option\u003e\n            \u003coption value=\"American\"\u003eآمریکایی\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__grid\"\u003e\n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eشانس\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eسهام\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"100\" /\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eپرداخت\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eسود\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eاحتمال ضمنی\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-probability\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003eبازنشانی کنید\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    const root = document.getElementById('bkcoeff_0');\n    const formatEl = root.querySelector('.js-format');\n    const oddsEl = root.querySelector('.js-odds');\n    const stakeEl = root.querySelector('.js-stake');\n    const payoutEl = root.querySelector('.js-payout');\n    const profitEl = root.querySelector('.js-profit');\n    const probEl = root.querySelector('.js-probability');\n    const resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        const format = formatEl.value;\n        const decimal = convertToDecimal(oddsEl.value.trim(), format);\n        const stake = parseFloat(stakeEl.value);\n\n        if (oddsEl.value.trim() \u0026\u0026 decimal === null) { oddsEl.classList.add('invalid'); }\n        else { oddsEl.classList.remove('invalid'); }\n\n        if (!decimal || !stake || stake \u003c= 0) {\n            payoutEl.textContent = '-';\n            profitEl.textContent = '-';\n            probEl.textContent = decimal ? (100 / decimal).toFixed(2) + '%' : '-';\n            return;\n        }\n\n        const payout = decimal * stake;\n        const profit = payout - stake;\n        payoutEl.textContent = formatNumber(payout);\n        profitEl.textContent = formatNumber(profit);\n        probEl.textContent = (100 / decimal).toFixed(2) + '%';\n    }\n\n    formatEl.addEventListener('change', function() {\n        oddsEl.placeholder = getOddsPlaceholder(formatEl.value);\n        update();\n    });\n    [oddsEl, stakeEl].forEach(el =\u003e el.addEventListener('input', update));\n\n    resetBtn.addEventListener('click', function() {\n        oddsEl.value = ''; stakeEl.value = '';\n        formatEl.selectedIndex = 0;\n        oddsEl.classList.remove('invalid');\n        payoutEl.textContent = '-'; profitEl.textContent = '-'; probEl.textContent = '-';\n    });\n})();\n\u003c/script\u003e","title":"ماشین‌حساب ضرایب شرط‌بندی - تبدیل ضرایب و احتمالات"},{"content":" نوع پیش بینی پیش بینی مستقیم پیش بینی معکوس شانس مقام اول شانس مقام دوم سهام تعداد شرط ها 1 کل سهام - سود تقریبی - پرداخت - سود - بازنشانی کنید ","permalink":"https://calculators-odds.com/fa/forecast-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"forecast_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eنوع پیش بینی\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-type\"\u003e\n            \u003coption value=\"straight\"\u003eپیش بینی مستقیم\u003c/option\u003e\n            \u003coption value=\"reverse\"\u003eپیش بینی معکوس\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eشانس مقام اول\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-odds1\" type=\"text\" placeholder=\"3.00\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eشانس مقام دوم\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-odds2\" type=\"text\" placeholder=\"5.00\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eسهام\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"1\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eتعداد شرط ها\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-numbets\"\u003e1\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eکل سهام\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-totalstake\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eسود تقریبی\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-dividend\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eپرداخت\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eسود\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003eبازنشانی کنید\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var root = document.getElementById('forecast_0');\n    var typeEl = root.querySelector('.js-type');\n    var odds1El = root.querySelector('.js-odds1');\n    var odds2El = root.querySelector('.js-odds2');\n    var stakeEl = root.querySelector('.js-stake');\n    var numBetsEl = root.querySelector('.js-numbets');\n    var totalStakeEl = root.querySelector('.js-totalstake');\n    var dividendEl = root.querySelector('.js-dividend');\n    var payoutEl = root.querySelector('.js-payout');\n    var profitEl = root.querySelector('.js-profit');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var o1 = parseFloat(odds1El.value);\n        var o2 = parseFloat(odds2El.value);\n        var stake = parseFloat(stakeEl.value);\n        var isReverse = typeEl.value === 'reverse';\n        var numBets = isReverse ? 2 : 1;\n        numBetsEl.textContent = numBets;\n\n        if (isNaN(o1) || isNaN(o2) || o1 \u003c= 1 || o2 \u003c= 1) {\n            totalStakeEl.textContent = '-'; dividendEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return;\n        }\n        if (!stake || stake \u003c= 0) {\n            totalStakeEl.textContent = '-'; dividendEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return;\n        }\n\n        var dividend = o1 * o2;\n        var totalStake = stake * numBets;\n        var payout = dividend * stake;\n\n        totalStakeEl.textContent = formatNumber(totalStake);\n        dividendEl.textContent = formatNumber(dividend);\n        payoutEl.textContent = formatNumber(payout);\n        profitEl.textContent = formatNumber(payout - totalStake);\n    }\n\n    typeEl.addEventListener('change', update);\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        odds1El.value=''; odds2El.value=''; stakeEl.value='';\n        typeEl.selectedIndex=0; numBetsEl.textContent='1';\n        totalStakeEl.textContent='-'; dividendEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"ماشین‌حساب فورکست - شرط 1-2"},{"content":" فرمت ضرایب اعشاری کسری آمریکایی انتخاب 1 انتخاب 2 انتخاب 3 انتخاب 4 انتخاب 5 سهام واحد تعداد شرط ها 26 کل سهام - پرداخت - سود - بازنشانی کنید ","permalink":"https://calculators-odds.com/fa/canadian-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"canadian_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eفرمت ضرایب\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003eاعشاری\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003eکسری\u003c/option\u003e\n            \u003coption value=\"American\"\u003eآمریکایی\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__selections\"\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 1\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 2\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 3\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 4\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 5\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eسهام واحد\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"10\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eتعداد شرط ها\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value\"\u003e26\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eکل سهام\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-totalstake\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eپرداخت\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eسود\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003eبازنشانی کنید\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var FOLDS = [2, 3, 4, 5];\n    var root = document.getElementById('canadian_0');\n    var formatEl = root.querySelector('.js-format');\n    var stakeEl = root.querySelector('.js-stake');\n    var payoutEl = root.querySelector('.js-payout');\n    var profitEl = root.querySelector('.js-profit');\n    var totalStakeEl = root.querySelector('.js-totalstake');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var format = formatEl.value;\n        var inputs = root.querySelectorAll('.js-odds');\n        var odds = [], allValid = true;\n        inputs.forEach(function(input) {\n            var d = convertToDecimal(input.value.trim(), format);\n            if (d === null \u0026\u0026 input.value.trim()) { input.classList.add('invalid'); allValid = false; }\n            else { input.classList.remove('invalid'); if (d) odds.push(d); else allValid = false; }\n        });\n        var unitStake = parseFloat(stakeEl.value);\n        if (!allValid || !unitStake || unitStake \u003c= 0) { totalStakeEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n        var r = calcSystemBet(odds, unitStake, FOLDS);\n        totalStakeEl.textContent = formatNumber(r.totalStake);\n        payoutEl.textContent = formatNumber(r.totalPayout);\n        profitEl.textContent = formatNumber(r.totalPayout - r.totalStake);\n    }\n\n    formatEl.addEventListener('change', function() { root.querySelectorAll('.js-odds').forEach(function(i){i.placeholder=getOddsPlaceholder(formatEl.value);}); update(); });\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        root.querySelectorAll('.js-odds').forEach(function(i){i.value='';i.classList.remove('invalid');});\n        stakeEl.value=''; formatEl.selectedIndex=0; totalStakeEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"ماشین‌حساب کانادایی - 5 انتخاب 26 شرط"},{"content":" فرمت ضرایب اعشاری کسری آمریکایی انتخاب 1 انتخاب 2 انتخاب 3 انتخاب 4 انتخاب 5 انتخاب 6 انتخاب 7 انتخاب 8 سهام واحد تعداد شرط ها 247 کل سهام - پرداخت - سود - بازنشانی کنید ","permalink":"https://calculators-odds.com/fa/goliath-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"goliath_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eفرمت ضرایب\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003eاعشاری\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003eکسری\u003c/option\u003e\n            \u003coption value=\"American\"\u003eآمریکایی\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__selections\"\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 1\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 2\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 3\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 4\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 5\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 6\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 7\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 8\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eسهام واحد\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"1\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eتعداد شرط ها\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value\"\u003e247\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eکل سهام\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-totalstake\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eپرداخت\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eسود\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003eبازنشانی کنید\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var FOLDS = [2, 3, 4, 5, 6, 7, 8];\n    var root = document.getElementById('goliath_0');\n    var formatEl = root.querySelector('.js-format');\n    var stakeEl = root.querySelector('.js-stake');\n    var payoutEl = root.querySelector('.js-payout');\n    var profitEl = root.querySelector('.js-profit');\n    var totalStakeEl = root.querySelector('.js-totalstake');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var format = formatEl.value;\n        var inputs = root.querySelectorAll('.js-odds');\n        var odds = [], allValid = true;\n        inputs.forEach(function(input) {\n            var d = convertToDecimal(input.value.trim(), format);\n            if (d === null \u0026\u0026 input.value.trim()) { input.classList.add('invalid'); allValid = false; }\n            else { input.classList.remove('invalid'); if (d) odds.push(d); else allValid = false; }\n        });\n        var unitStake = parseFloat(stakeEl.value);\n        if (!allValid || !unitStake || unitStake \u003c= 0) { totalStakeEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n        var r = calcSystemBet(odds, unitStake, FOLDS);\n        totalStakeEl.textContent = formatNumber(r.totalStake);\n        payoutEl.textContent = formatNumber(r.totalPayout);\n        profitEl.textContent = formatNumber(r.totalPayout - r.totalStake);\n    }\n\n    formatEl.addEventListener('change', function() { root.querySelectorAll('.js-odds').forEach(function(i){i.placeholder=getOddsPlaceholder(formatEl.value);}); update(); });\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        root.querySelectorAll('.js-odds').forEach(function(i){i.value='';i.classList.remove('invalid');});\n        stakeEl.value=''; formatEl.selectedIndex=0; totalStakeEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"ماشین‌حساب گولیات - 8 انتخاب 247 شرط"},{"content":" فرمت ضرایب اعشاری کسری آمریکایی انتخاب 1 انتخاب 2 انتخاب 3 انتخاب 4 سهام واحد تعداد شرط ها 15 کل سهام - پرداخت - سود - بازنشانی کنید ","permalink":"https://calculators-odds.com/fa/lucky-15-bet-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"lucky15_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eفرمت ضرایب\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003eاعشاری\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003eکسری\u003c/option\u003e\n            \u003coption value=\"American\"\u003eآمریکایی\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__selections\"\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 1\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 2\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 3\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 4\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eسهام واحد\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"10\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eتعداد شرط ها\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value\"\u003e15\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eکل سهام\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-totalstake\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eپرداخت\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eسود\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003eبازنشانی کنید\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var FOLDS = [1, 2, 3, 4];\n    var root = document.getElementById('lucky15_0');\n    var formatEl = root.querySelector('.js-format');\n    var stakeEl = root.querySelector('.js-stake');\n    var payoutEl = root.querySelector('.js-payout');\n    var profitEl = root.querySelector('.js-profit');\n    var totalStakeEl = root.querySelector('.js-totalstake');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var format = formatEl.value;\n        var inputs = root.querySelectorAll('.js-odds');\n        var odds = [], allValid = true;\n        inputs.forEach(function(input) {\n            var d = convertToDecimal(input.value.trim(), format);\n            if (d === null \u0026\u0026 input.value.trim()) { input.classList.add('invalid'); allValid = false; }\n            else { input.classList.remove('invalid'); if (d) odds.push(d); else allValid = false; }\n        });\n        var unitStake = parseFloat(stakeEl.value);\n        if (!allValid || !unitStake || unitStake \u003c= 0) { totalStakeEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n        var r = calcSystemBet(odds, unitStake, FOLDS);\n        totalStakeEl.textContent = formatNumber(r.totalStake);\n        payoutEl.textContent = formatNumber(r.totalPayout);\n        profitEl.textContent = formatNumber(r.totalPayout - r.totalStake);\n    }\n\n    formatEl.addEventListener('change', function() { root.querySelectorAll('.js-odds').forEach(function(i){i.placeholder=getOddsPlaceholder(formatEl.value);}); update(); });\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        root.querySelectorAll('.js-odds').forEach(function(i){i.value='';i.classList.remove('invalid');});\n        stakeEl.value=''; formatEl.selectedIndex=0; totalStakeEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"ماشین‌حساب لاکی 15 - 4 انتخاب 15 شرط"},{"content":" فرمت ضرایب اعشاری کسری آمریکایی انتخاب 1 انتخاب 2 انتخاب 3 انتخاب 4 انتخاب 5 سهام واحد تعداد شرط ها 31 کل سهام - پرداخت - سود - بازنشانی کنید ","permalink":"https://calculators-odds.com/fa/lucky-31-bet-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"lucky31_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eفرمت ضرایب\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003eاعشاری\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003eکسری\u003c/option\u003e\n            \u003coption value=\"American\"\u003eآمریکایی\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__selections\"\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 1\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 2\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 3\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 4\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 5\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eسهام واحد\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"10\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eتعداد شرط ها\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value\"\u003e31\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eکل سهام\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-totalstake\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eپرداخت\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eسود\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003eبازنشانی کنید\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var FOLDS = [1, 2, 3, 4, 5];\n    var root = document.getElementById('lucky31_0');\n    var formatEl = root.querySelector('.js-format');\n    var stakeEl = root.querySelector('.js-stake');\n    var payoutEl = root.querySelector('.js-payout');\n    var profitEl = root.querySelector('.js-profit');\n    var totalStakeEl = root.querySelector('.js-totalstake');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var format = formatEl.value;\n        var inputs = root.querySelectorAll('.js-odds');\n        var odds = [], allValid = true;\n        inputs.forEach(function(input) {\n            var d = convertToDecimal(input.value.trim(), format);\n            if (d === null \u0026\u0026 input.value.trim()) { input.classList.add('invalid'); allValid = false; }\n            else { input.classList.remove('invalid'); if (d) odds.push(d); else allValid = false; }\n        });\n        var unitStake = parseFloat(stakeEl.value);\n        if (!allValid || !unitStake || unitStake \u003c= 0) { totalStakeEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n        var r = calcSystemBet(odds, unitStake, FOLDS);\n        totalStakeEl.textContent = formatNumber(r.totalStake);\n        payoutEl.textContent = formatNumber(r.totalPayout);\n        profitEl.textContent = formatNumber(r.totalPayout - r.totalStake);\n    }\n\n    formatEl.addEventListener('change', function() { root.querySelectorAll('.js-odds').forEach(function(i){i.placeholder=getOddsPlaceholder(formatEl.value);}); update(); });\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        root.querySelectorAll('.js-odds').forEach(function(i){i.value='';i.classList.remove('invalid');});\n        stakeEl.value=''; formatEl.selectedIndex=0; totalStakeEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"ماشین‌حساب لاکی 31 - 5 انتخاب 31 شرط"},{"content":" فرمت ضرایب اعشاری کسری آمریکایی انتخاب 1 انتخاب 2 انتخاب 3 انتخاب 4 انتخاب 5 انتخاب 6 سهام واحد تعداد شرط ها 63 کل سهام - پرداخت - سود - بازنشانی کنید ","permalink":"https://calculators-odds.com/fa/lucky-63-bet-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"lucky63_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eفرمت ضرایب\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003eاعشاری\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003eکسری\u003c/option\u003e\n            \u003coption value=\"American\"\u003eآمریکایی\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__selections\"\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 1\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 2\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 3\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 4\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 5\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 6\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eسهام واحد\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"10\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eتعداد شرط ها\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value\"\u003e63\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eکل سهام\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-totalstake\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eپرداخت\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eسود\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003eبازنشانی کنید\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var FOLDS = [1, 2, 3, 4, 5, 6];\n    var root = document.getElementById('lucky63_0');\n    var formatEl = root.querySelector('.js-format');\n    var stakeEl = root.querySelector('.js-stake');\n    var payoutEl = root.querySelector('.js-payout');\n    var profitEl = root.querySelector('.js-profit');\n    var totalStakeEl = root.querySelector('.js-totalstake');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var format = formatEl.value;\n        var inputs = root.querySelectorAll('.js-odds');\n        var odds = [], allValid = true;\n        inputs.forEach(function(input) {\n            var d = convertToDecimal(input.value.trim(), format);\n            if (d === null \u0026\u0026 input.value.trim()) { input.classList.add('invalid'); allValid = false; }\n            else { input.classList.remove('invalid'); if (d) odds.push(d); else allValid = false; }\n        });\n        var unitStake = parseFloat(stakeEl.value);\n        if (!allValid || !unitStake || unitStake \u003c= 0) { totalStakeEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n        var r = calcSystemBet(odds, unitStake, FOLDS);\n        totalStakeEl.textContent = formatNumber(r.totalStake);\n        payoutEl.textContent = formatNumber(r.totalPayout);\n        profitEl.textContent = formatNumber(r.totalPayout - r.totalStake);\n    }\n\n    formatEl.addEventListener('change', function() { root.querySelectorAll('.js-odds').forEach(function(i){i.placeholder=getOddsPlaceholder(formatEl.value);}); update(); });\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        root.querySelectorAll('.js-odds').forEach(function(i){i.value='';i.classList.remove('invalid');});\n        stakeEl.value=''; formatEl.selectedIndex=0; totalStakeEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"ماشین‌حساب لاکی 63 - 6 انتخاب 63 شرط"},{"content":" ماشین حساب معیار کلی مرحله 1: جزئیات شرط را وارد کنید فرمت ضرایب اعشاری کسری آمریکایی ضرایب اعشاری: 2.50 | کسری: 3/2 | آمریکایی: \u0026#43;150 احتمال برد (%) (%) تخمین شما از احتمال برد (1-99%) سرمایه گذاری ($) کل مبلغ موجود برای شرط‌بندی مرحله 2: سطح ریسک را انتخاب کنید کلی کامل نیمه کلی ربع کلی نیم یا یک‌چهارم کلی ریسک را کاهش می‌دهد اما سود بالقوه را هم کاهش می‌دهد نتایج لبه — کلی % — احتمال ضمنی — ارزش مورد انتظار — سهام بهینه — بازنشانی فرمول کلی: f* = (bp - q) / b | b = ضرایب - 1، p = احتمال برد، q = 1 - p ","permalink":"https://calculators-odds.com/fa/kelly-criterion-calculator/","summary":"\u003cstyle\u003e\n    .kelly {\n        margin: 15px 0;\n        background-color: #1e2328;\n        border-radius: 12px;\n        padding: 25px;\n        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);\n        color: #e8e8e8;\n        font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif;\n    }\n\n    .kelly__title {\n        font-size: 24px;\n        font-weight: bold;\n        text-align: center;\n        margin-bottom: 25px;\n        color: #e8e8e8;\n    }\n\n    .kelly__section {\n        background: #2d333b;\n        border-radius: 8px;\n        padding: 20px;\n        margin-bottom: 20px;\n    }\n\n    .kelly__section-title {\n        font-size: 14px;\n        font-weight: 600;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n        color: #4CAF50;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 1px solid rgba(255,255,255,0.1);\n    }\n\n    .kelly__grid {\n        display: grid;\n        grid-template-columns: repeat(2, 1fr);\n        gap: 15px;\n    }\n\n    .kelly__field {\n        display: flex;\n        flex-direction: column;\n    }\n\n    .kelly__field--full {\n        grid-column: 1 / -1;\n    }\n\n    .kelly__label {\n        font-size: 13px;\n        font-weight: 500;\n        margin-bottom: 6px;\n        color: rgba(232, 232, 232, 0.9);\n    }\n\n    .kelly__input, .kelly__select {\n        background: #1e2328;\n        color: #e8e8e8;\n        padding: 12px 14px;\n        border: 2px solid rgba(255,255,255,0.1);\n        border-radius: 6px;\n        font-size: 16px;\n        width: 100%;\n        box-sizing: border-box;\n        transition: border-color 0.2s, box-shadow 0.2s;\n    }\n\n    .kelly__input::placeholder {\n        color: rgba(232, 232, 232, 0.4);\n    }\n\n    .kelly__input:focus, .kelly__select:focus {\n        outline: none;\n        border-color: #4CAF50;\n        box-shadow: 0 0 0 3px rgba(76, 175, 80, 0.2);\n    }\n\n    .kelly__select {\n        cursor: pointer;\n        appearance: none;\n        background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%23e8e8e8' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E\");\n        background-repeat: no-repeat;\n        background-position: right 12px center;\n        padding-right: 36px;\n    }\n\n    .kelly__hint {\n        font-size: 11px;\n        color: rgba(232, 232, 232, 0.5);\n        margin-top: 4px;\n    }\n\n    .kelly__fraction-row {\n        display: flex;\n        gap: 10px;\n    }\n\n    .kelly__fraction-btn {\n        flex: 1;\n        padding: 12px 8px;\n        border: 2px solid rgba(255,255,255,0.2);\n        background: transparent;\n        color: #e8e8e8;\n        border-radius: 6px;\n        cursor: pointer;\n        font-size: 13px;\n        font-weight: 500;\n        transition: all 0.2s;\n    }\n\n    .kelly__fraction-btn:hover {\n        border-color: #4CAF50;\n        background: rgba(76, 175, 80, 0.1);\n    }\n\n    .kelly__fraction-btn.active {\n        background: #4CAF50;\n        border-color: #4CAF50;\n        color: #fff;\n    }\n\n    .kelly__results {\n        background: #2d333b;\n        border-radius: 8px;\n        padding: 20px;\n    }\n\n    .kelly__results-title {\n        font-size: 14px;\n        font-weight: 600;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n        color: #4CAF50;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 1px solid rgba(255,255,255,0.1);\n    }\n\n    .kelly__metrics {\n        display: grid;\n        grid-template-columns: repeat(2, 1fr);\n        gap: 12px;\n        margin-bottom: 20px;\n    }\n\n    .kelly__metric {\n        background: #1e2328;\n        padding: 15px;\n        border-radius: 6px;\n        text-align: center;\n    }\n\n    .kelly__metric-label {\n        font-size: 11px;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n        color: rgba(232, 232, 232, 0.6);\n        margin-bottom: 6px;\n    }\n\n    .kelly__metric-value {\n        font-size: 20px;\n        font-weight: bold;\n        color: #e8e8e8;\n    }\n\n    .kelly__metric-value.positive {\n        color: #4CAF50;\n    }\n\n    .kelly__metric-value.negative {\n        color: #f44336;\n    }\n\n    .kelly__recommendation {\n        background: linear-gradient(135deg, rgba(76, 175, 80, 0.2), rgba(76, 175, 80, 0.1));\n        border: 2px solid #4CAF50;\n        border-radius: 8px;\n        padding: 20px;\n        text-align: center;\n    }\n\n    .kelly__recommendation.no-bet {\n        background: linear-gradient(135deg, rgba(244, 67, 54, 0.2), rgba(244, 67, 54, 0.1));\n        border-color: #f44336;\n    }\n\n    .kelly__recommendation-label {\n        font-size: 12px;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n        color: rgba(232, 232, 232, 0.7);\n        margin-bottom: 8px;\n    }\n\n    .kelly__recommendation-value {\n        font-size: 28px;\n        font-weight: bold;\n        color: #4CAF50;\n    }\n\n    .kelly__recommendation.no-bet .kelly__recommendation-value {\n        color: #f44336;\n        font-size: 18px;\n    }\n\n    .kelly__reset {\n        display: block;\n        width: 100%;\n        margin-top: 15px;\n        padding: 12px;\n        background: rgba(255,255,255,0.1);\n        color: #e8e8e8;\n        border: none;\n        border-radius: 6px;\n        font-size: 14px;\n        font-weight: 500;\n        cursor: pointer;\n        transition: background 0.2s;\n    }\n\n    .kelly__reset:hover {\n        background: rgba(255,255,255,0.15);\n    }\n\n    .kelly__formula {\n        margin-top: 15px;\n        padding: 12px;\n        background: rgba(255,255,255,0.05);\n        border-radius: 6px;\n        font-size: 11px;\n        color: rgba(232, 232, 232, 0.5);\n        text-align: center;\n    }\n\n    .kelly__input.invalid {\n        border-color: #f44336 !important;\n        box-shadow: 0 0 0 3px rgba(244, 67, 54, 0.2);\n    }\n\n    @media (max-width: 500px) {\n        .kelly__grid {\n            grid-template-columns: 1fr;\n        }\n        .kelly__metrics {\n            grid-template-columns: 1fr;\n        }\n        .kelly__fraction-row {\n            flex-direction: column;\n        }\n        .kelly__recommendation-value {\n            font-size: 22px;\n        }\n    }\n\u003c/style\u003e\n\n\u003cdiv class=\"kelly\"\u003e\n    \u003cdiv class=\"kelly__title\"\u003eماشین حساب معیار کلی\u003c/div\u003e\n\n    \n    \u003cdiv class=\"kelly__section\"\u003e\n        \u003cdiv class=\"kelly__section-title\"\u003eمرحله 1: جزئیات شرط را وارد کنید\u003c/div\u003e\n        \u003cdiv class=\"kelly__grid\"\u003e\n            \u003cdiv class=\"kelly__field\"\u003e\n                \u003clabel class=\"kelly__label\"\u003eفرمت ضرایب\u003c/label\u003e\n                \u003cselect class=\"kelly__select kelly__odds-type\"\u003e\n                    \u003coption value=\"Decimal\"\u003eاعشاری\u003c/option\u003e\n                    \u003coption value=\"Fractional\"\u003eکسری\u003c/option\u003e\n                    \u003coption value=\"American\"\u003eآمریکایی\u003c/option\u003e\n                \u003c/select\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"kelly__field\"\u003e\n                \u003clabel class=\"kelly__label\"\u003eضرایب\u003c/label\u003e\n                \u003cinput type=\"text\" class=\"kelly__input kelly__odds\" placeholder=\"2.50\"\u003e\n                \u003cspan class=\"kelly__hint\"\u003eاعشاری: 2.50 | کسری: 3/2 | آمریکایی: \u0026#43;150\u003c/span\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"kelly__field\"\u003e\n                \u003clabel class=\"kelly__label\"\u003eاحتمال برد (%) (%)\u003c/label\u003e\n                \u003cinput type=\"number\" class=\"kelly__input kelly__probability\" placeholder=\"55\" min=\"1\" max=\"99\" step=\"0.1\"\u003e\n                \u003cspan class=\"kelly__hint\"\u003eتخمین شما از احتمال برد (1-99%)\u003c/span\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"kelly__field\"\u003e\n                \u003clabel class=\"kelly__label\"\u003eسرمایه گذاری ($)\u003c/label\u003e\n                \u003cinput type=\"number\" class=\"kelly__input kelly__bankroll\" placeholder=\"1000\" min=\"0\" step=\"1\"\u003e\n                \u003cspan class=\"kelly__hint\"\u003eکل مبلغ موجود برای شرط‌بندی\u003c/span\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \n    \u003cdiv class=\"kelly__section\"\u003e\n        \u003cdiv class=\"kelly__section-title\"\u003eمرحله 2: سطح ریسک را انتخاب کنید\u003c/div\u003e\n        \u003cdiv class=\"kelly__field kelly__field--full\"\u003e\n            \u003cdiv class=\"kelly__fraction-row\"\u003e\n                \u003cbutton type=\"button\" class=\"kelly__fraction-btn active\" data-fraction=\"1\"\u003eکلی کامل\u003c/button\u003e\n                \u003cbutton type=\"button\" class=\"kelly__fraction-btn\" data-fraction=\"0.5\"\u003eنیمه کلی\u003c/button\u003e\n                \u003cbutton type=\"button\" class=\"kelly__fraction-btn\" data-fraction=\"0.25\"\u003eربع کلی\u003c/button\u003e\n            \u003c/div\u003e\n            \u003cspan class=\"kelly__hint\" style=\"margin-top: 8px; display: block;\"\u003eنیم یا یک‌چهارم کلی ریسک را کاهش می‌دهد اما سود بالقوه را هم کاهش می‌دهد\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \n    \u003cdiv class=\"kelly__results\"\u003e\n        \u003cdiv class=\"kelly__results-title\"\u003eنتایج\u003c/div\u003e\n\n        \u003cdiv class=\"kelly__metrics\"\u003e\n            \u003cdiv class=\"kelly__metric\"\u003e\n                \u003cdiv class=\"kelly__metric-label\"\u003eلبه\u003c/div\u003e\n                \u003cdiv class=\"kelly__metric-value kelly__edge\"\u003e—\u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"kelly__metric\"\u003e\n                \u003cdiv class=\"kelly__metric-label\"\u003eکلی %\u003c/div\u003e\n                \u003cdiv class=\"kelly__metric-value kelly__kelly-pct\"\u003e—\u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"kelly__metric\"\u003e\n                \u003cdiv class=\"kelly__metric-label\"\u003eاحتمال ضمنی\u003c/div\u003e\n                \u003cdiv class=\"kelly__metric-value kelly__implied\"\u003e—\u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"kelly__metric\"\u003e\n                \u003cdiv class=\"kelly__metric-label\"\u003eارزش مورد انتظار\u003c/div\u003e\n                \u003cdiv class=\"kelly__metric-value kelly__ev\"\u003e—\u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \u003cdiv class=\"kelly__recommendation\"\u003e\n            \u003cdiv class=\"kelly__recommendation-label\"\u003eسهام بهینه\u003c/div\u003e\n            \u003cdiv class=\"kelly__recommendation-value\"\u003e—\u003c/div\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cbutton class=\"kelly__reset\" type=\"button\"\u003eبازنشانی\u003c/button\u003e\n\n    \u003cdiv class=\"kelly__formula\"\u003e\n        فرمول کلی: f* = (bp - q) / b | b = ضرایب - 1، p = احتمال برد، q = 1 - p\n    \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    const container = document.currentScript.previousElementSibling;\n\n    const oddsTypeSelect = container.querySelector('.kelly__odds-type');\n    const oddsInput = container.querySelector('.kelly__odds');\n    const probabilityInput = container.querySelector('.kelly__probability');\n    const bankrollInput = container.querySelector('.kelly__bankroll');\n    const fractionBtns = container.querySelectorAll('.kelly__fraction-btn');\n    const resetBtn = container.querySelector('.kelly__reset');\n\n    const kellyPctEl = container.querySelector('.kelly__kelly-pct');\n    const edgeEl = container.querySelector('.kelly__edge');\n    const evEl = container.querySelector('.kelly__ev');\n    const impliedEl = container.querySelector('.kelly__implied');\n    const recommendationEl = container.querySelector('.kelly__recommendation');\n    const recommendationValueEl = container.querySelector('.kelly__recommendation-value');\n\n    let selectedFraction = 1;\n\n    const placeholders = {\n        Decimal: '2.50',\n        Fractional: '3/2',\n        American: '+150'\n    };\n\n    function validateFractional(value) {\n        return /^\\d+\\/\\d+$/.test(value);\n    }\n\n    function validateDecimal(value) {\n        return /^\\d+(\\.\\d+)?$/.test(value) \u0026\u0026 parseFloat(value) \u003e 1;\n    }\n\n    function validateAmerican(value) {\n        return /^[-+]?\\d+$/.test(value);\n    }\n\n    function toDecimal(value, type) {\n        if (type === 'Fractional') {\n            if (!validateFractional(value)) return null;\n            const parts = value.split('/');\n            return (parseFloat(parts[0]) / parseFloat(parts[1])) + 1;\n        } else if (type === 'Decimal') {\n            if (!validateDecimal(value)) return null;\n            return parseFloat(value);\n        } else if (type === 'American') {\n            if (!validateAmerican(value)) return null;\n            const odds = parseFloat(value);\n            return odds \u003e 0 ? (odds / 100) + 1 : (100 / Math.abs(odds)) + 1;\n        }\n        return null;\n    }\n\n    function calculate() {\n        const type = oddsTypeSelect.value;\n        const decimalOdds = toDecimal(oddsInput.value.trim(), type);\n        const winProb = parseFloat(probabilityInput.value) / 100;\n        const bankroll = parseFloat(bankrollInput.value);\n\n        \n        if (!decimalOdds || decimalOdds \u003c= 1) {\n            oddsInput.classList.toggle('invalid', oddsInput.value.trim() !== '');\n            resetOutput();\n            return;\n        }\n        oddsInput.classList.remove('invalid');\n\n        if (isNaN(winProb) || winProb \u003c= 0 || winProb \u003e= 1) {\n            probabilityInput.classList.toggle('invalid', probabilityInput.value.trim() !== '');\n            resetOutput();\n            return;\n        }\n        probabilityInput.classList.remove('invalid');\n\n        \n        const b = decimalOdds - 1;\n        const p = winProb;\n        const q = 1 - p;\n\n        const kellyPct = (b * p - q) / b;\n        const edge = (decimalOdds * p) - 1;\n        const impliedProb = 1 / decimalOdds;\n\n        \n        edgeEl.textContent = (edge * 100).toFixed(2) + '%';\n        edgeEl.className = 'kelly__metric-value ' + (edge \u003e 0 ? 'positive' : 'negative');\n\n        kellyPctEl.textContent = (kellyPct * 100).toFixed(2) + '%';\n        kellyPctEl.className = 'kelly__metric-value ' + (kellyPct \u003e 0 ? 'positive' : 'negative');\n\n        impliedEl.textContent = (impliedProb * 100).toFixed(2) + '%';\n\n        evEl.textContent = (edge \u003e 0 ? '+' : '') + edge.toFixed(4);\n        evEl.className = 'kelly__metric-value ' + (edge \u003e 0 ? 'positive' : 'negative');\n\n        \n        if (kellyPct \u003c= 0) {\n            recommendationEl.classList.add('no-bet');\n            recommendationValueEl.textContent = 'بدون شرط (لبه منفی)';\n        } else {\n            recommendationEl.classList.remove('no-bet');\n            const adjustedKelly = kellyPct * selectedFraction;\n\n            if (!isNaN(bankroll) \u0026\u0026 bankroll \u003e 0) {\n                const stake = bankroll * adjustedKelly;\n                recommendationValueEl.textContent = '$' + stake.toFixed(2) + ' (' + (adjustedKelly * 100).toFixed(1) + '%)';\n            } else {\n                recommendationValueEl.textContent = (adjustedKelly * 100).toFixed(2) + '% of bankroll';\n            }\n        }\n    }\n\n    function resetOutput() {\n        edgeEl.textContent = '—';\n        edgeEl.className = 'kelly__metric-value';\n        kellyPctEl.textContent = '—';\n        kellyPctEl.className = 'kelly__metric-value';\n        impliedEl.textContent = '—';\n        evEl.textContent = '—';\n        evEl.className = 'kelly__metric-value';\n        recommendationEl.classList.remove('no-bet');\n        recommendationValueEl.textContent = '—';\n    }\n\n    function resetAll() {\n        oddsInput.value = '';\n        probabilityInput.value = '';\n        bankrollInput.value = '';\n        oddsInput.classList.remove('invalid');\n        probabilityInput.classList.remove('invalid');\n\n        fractionBtns.forEach(btn =\u003e btn.classList.remove('active'));\n        fractionBtns[0].classList.add('active');\n        selectedFraction = 1;\n\n        resetOutput();\n    }\n\n    \n    oddsTypeSelect.addEventListener('change', function() {\n        oddsInput.placeholder = placeholders[this.value];\n        calculate();\n    });\n\n    oddsInput.addEventListener('input', calculate);\n    probabilityInput.addEventListener('input', calculate);\n    bankrollInput.addEventListener('input', calculate);\n\n    fractionBtns.forEach(btn =\u003e {\n        btn.addEventListener('click', function() {\n            fractionBtns.forEach(b =\u003e b.classList.remove('active'));\n            this.classList.add('active');\n            selectedFraction = parseFloat(this.dataset.fraction);\n            calculate();\n        });\n    });\n\n    resetBtn.addEventListener('click', resetAll);\n})();\n\u003c/script\u003e","title":"ماشین‌حساب معیار کلی - اندازه شرط بهینه"},{"content":" فرمت ضرایب اعشاری کسری آمریکایی انتخاب 1 انتخاب 2 انتخاب 3 انتخاب 4 انتخاب 5 انتخاب 6 سهام واحد تعداد شرط ها 57 کل سهام - پرداخت - سود - بازنشانی کنید ","permalink":"https://calculators-odds.com/fa/heinz-bet-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"heinz_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eفرمت ضرایب\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003eاعشاری\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003eکسری\u003c/option\u003e\n            \u003coption value=\"American\"\u003eآمریکایی\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__selections\"\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 1\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 2\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 3\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 4\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 5\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 6\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eسهام واحد\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"10\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eتعداد شرط ها\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value\"\u003e57\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eکل سهام\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-totalstake\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eپرداخت\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eسود\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003eبازنشانی کنید\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var FOLDS = [2, 3, 4, 5, 6];\n    var root = document.getElementById('heinz_0');\n    var formatEl = root.querySelector('.js-format');\n    var stakeEl = root.querySelector('.js-stake');\n    var payoutEl = root.querySelector('.js-payout');\n    var profitEl = root.querySelector('.js-profit');\n    var totalStakeEl = root.querySelector('.js-totalstake');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var format = formatEl.value;\n        var inputs = root.querySelectorAll('.js-odds');\n        var odds = [], allValid = true;\n        inputs.forEach(function(input) {\n            var d = convertToDecimal(input.value.trim(), format);\n            if (d === null \u0026\u0026 input.value.trim()) { input.classList.add('invalid'); allValid = false; }\n            else { input.classList.remove('invalid'); if (d) odds.push(d); else allValid = false; }\n        });\n        var unitStake = parseFloat(stakeEl.value);\n        if (!allValid || !unitStake || unitStake \u003c= 0) { totalStakeEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n        var r = calcSystemBet(odds, unitStake, FOLDS);\n        totalStakeEl.textContent = formatNumber(r.totalStake);\n        payoutEl.textContent = formatNumber(r.totalPayout);\n        profitEl.textContent = formatNumber(r.totalPayout - r.totalStake);\n    }\n\n    formatEl.addEventListener('change', function() { root.querySelectorAll('.js-odds').forEach(function(i){i.placeholder=getOddsPlaceholder(formatEl.value);}); update(); });\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        root.querySelectorAll('.js-odds').forEach(function(i){i.value='';i.classList.remove('invalid');});\n        stakeEl.value=''; formatEl.selectedIndex=0; totalStakeEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"ماشین‌حساب هاینز - 6 انتخاب 57 شرط"},{"content":" ماشین حساب شرط پرچین مرحله 1: شرط اصلی شما فرمت ضرایب اعشاری کسری آمریکایی فرمت ضرایب را انتخاب کنید شانس اصلی ضرایب اعشاری وارد کنید (مثلاً 2.50، 1.80، 3.00) سهام اصلی مبلغ شرط بندی شده روی شرط اصلی مرحله 2: جزئیات شرط پوشش فرمت ضرایب اعشاری کسری آمریکایی فرمت ضرایب پوشش را انتخاب کنید شانس پرچین ضرایب اعشاری وارد کنید (مثلاً 2.50، 1.80، 3.00) حالت پرچین سود برابر بدون ضرر (سربه‌سر) سود برابر: سود یکسان صرف نظر از نتیجه نتایج سهام پرچین - مبلغ برای شرط بندی روی پوشش در صورت برنده شدن اورجینال سود کنید - اگر هج برنده شود، سود کنید - جزئیات کل سرمایه‌گذاری: - بازگشت اصلی: - بازگشت پوشش: - سود تضمینی: - بازنشانی ","permalink":"https://calculators-odds.com/fa/hedge-bet-calculator/","summary":"\u003cstyle\u003e\n    .hedge {\n        margin: 15px 0;\n        background-color: #1e2328;\n        border-radius: 8px;\n        padding: 25px;\n        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n        color: #e8e8e8;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n    }\n\n    .hedge__title {\n        font-size: 24px;\n        font-weight: bold;\n        margin-bottom: 25px;\n        text-align: center;\n    }\n\n    .hedge__container {\n        width: 100%;\n        max-width: 700px;\n        display: flex;\n        flex-direction: column;\n        gap: 20px;\n    }\n\n    .hedge__section {\n        background: #2d333b;\n        color: #e8e8e8;\n        padding: 20px;\n        border-radius: 8px;\n    }\n\n    .hedge__section-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #2196F3;\n        color: #2196F3;\n    }\n\n    .hedge__row {\n        display: flex;\n        gap: 15px;\n        margin-bottom: 15px;\n    }\n\n    .hedge__row:last-child {\n        margin-bottom: 0;\n    }\n\n    .hedge__input-group {\n        display: flex;\n        flex-direction: column;\n        flex: 1;\n    }\n\n    .hedge__label {\n        font-size: 13px;\n        font-weight: bold;\n        margin-bottom: 6px;\n        color: #e8e8e8;\n    }\n\n    .hedge__input, .hedge__select {\n        background: rgba(0, 0, 0, 0.3);\n        color: #e8e8e8;\n        padding: 12px;\n        border: 1px solid rgba(255, 255, 255, 0.1);\n        border-radius: 4px;\n        font-size: 16px;\n        width: 100%;\n        box-sizing: border-box;\n        transition: border-color 0.2s;\n    }\n\n    .hedge__input:focus, .hedge__select:focus {\n        outline: none;\n        border-color: #2196F3;\n    }\n\n    .hedge__input::placeholder {\n        color: rgba(232, 232, 232, 0.4);\n    }\n\n    .hedge__select {\n        cursor: pointer;\n    }\n\n    .hedge__select option {\n        background: #2d333b;\n        color: #e8e8e8;\n    }\n\n    .hedge__hint {\n        font-size: 11px;\n        color: rgba(232, 232, 232, 0.5);\n        margin-top: 4px;\n    }\n\n    .hedge__mode-row {\n        display: flex;\n        gap: 10px;\n    }\n\n    .hedge__mode-btn {\n        flex: 1;\n        padding: 12px;\n        border: 2px solid #2196F3;\n        background: transparent;\n        color: #e8e8e8;\n        border-radius: 4px;\n        cursor: pointer;\n        font-size: 14px;\n        transition: all 0.2s;\n    }\n\n    .hedge__mode-btn:hover {\n        background: rgba(33, 150, 243, 0.2);\n    }\n\n    .hedge__mode-btn.active {\n        background: #2196F3;\n        color: #fff;\n    }\n\n    .hedge__mode-hint {\n        font-size: 11px;\n        color: rgba(232, 232, 232, 0.5);\n        margin-top: 8px;\n        text-align: center;\n    }\n\n    .hedge__output {\n        background: #2d333b;\n        padding: 20px;\n        border-radius: 8px;\n    }\n\n    .hedge__output-title {\n        font-size: 16px;\n        font-weight: bold;\n        margin-bottom: 15px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #4CAF50;\n        color: #4CAF50;\n    }\n\n    .hedge__result-box {\n        background: rgba(76, 175, 80, 0.15);\n        border: 2px solid #4CAF50;\n        border-radius: 8px;\n        padding: 20px;\n        text-align: center;\n        margin-bottom: 20px;\n    }\n\n    .hedge__result-label {\n        font-size: 14px;\n        margin-bottom: 8px;\n        color: rgba(232, 232, 232, 0.8);\n    }\n\n    .hedge__result-value {\n        font-size: 32px;\n        font-weight: bold;\n        color: #4CAF50;\n    }\n\n    .hedge__result-hint {\n        font-size: 11px;\n        color: rgba(232, 232, 232, 0.5);\n        margin-top: 8px;\n    }\n\n    .hedge__outcomes {\n        display: grid;\n        grid-template-columns: repeat(2, 1fr);\n        gap: 15px;\n    }\n\n    .hedge__outcome {\n        background: rgba(255, 255, 255, 0.05);\n        padding: 15px;\n        border-radius: 6px;\n        text-align: center;\n    }\n\n    .hedge__outcome-label {\n        font-size: 12px;\n        color: rgba(232, 232, 232, 0.7);\n        margin-bottom: 8px;\n    }\n\n    .hedge__outcome-value {\n        font-size: 22px;\n        font-weight: bold;\n    }\n\n    .hedge__outcome-value.positive {\n        color: #4CAF50;\n    }\n\n    .hedge__outcome-value.negative {\n        color: #f44336;\n    }\n\n    .hedge__outcome-value.neutral {\n        color: #ff9800;\n    }\n\n    .hedge__summary {\n        margin-top: 20px;\n        padding-top: 15px;\n        border-top: 1px solid rgba(255,255,255,0.1);\n    }\n\n    .hedge__summary-title {\n        font-size: 13px;\n        font-weight: bold;\n        margin-bottom: 10px;\n        color: rgba(232, 232, 232, 0.7);\n    }\n\n    .hedge__summary-grid {\n        display: grid;\n        grid-template-columns: repeat(2, 1fr);\n        gap: 10px;\n    }\n\n    .hedge__summary-item {\n        display: flex;\n        justify-content: space-between;\n        font-size: 13px;\n        padding: 8px;\n        background: rgba(0, 0, 0, 0.2);\n        border-radius: 4px;\n    }\n\n    .hedge__summary-item span:first-child {\n        color: rgba(232, 232, 232, 0.6);\n    }\n\n    .hedge__summary-item span:last-child {\n        font-weight: bold;\n    }\n\n    .hedge__reset {\n        margin-top: 20px;\n        padding: 12px 40px;\n        background-color: rgba(255, 255, 255, 0.1);\n        color: #e8e8e8;\n        border: 1px solid rgba(255, 255, 255, 0.2);\n        border-radius: 4px;\n        font-size: 14px;\n        cursor: pointer;\n        transition: all 0.2s;\n    }\n\n    .hedge__reset:hover {\n        background-color: rgba(255, 255, 255, 0.2);\n    }\n\n    .invalid {\n        border: 2px solid #f44336 !important;\n    }\n\n    @media (max-width: 600px) {\n        .hedge__row {\n            flex-direction: column;\n        }\n        .hedge__outcomes {\n            grid-template-columns: 1fr;\n        }\n        .hedge__mode-row {\n            flex-direction: column;\n        }\n        .hedge__summary-grid {\n            grid-template-columns: 1fr;\n        }\n    }\n\u003c/style\u003e\n\n\u003csection class=\"hedge\"\u003e\n    \u003cdiv class=\"hedge__title\"\u003eماشین حساب شرط پرچین\u003c/div\u003e\n\n    \u003cdiv class=\"hedge__container\"\u003e\n        \n        \u003cdiv class=\"hedge__section\"\u003e\n            \u003cdiv class=\"hedge__section-title\"\u003eمرحله 1: شرط اصلی شما\u003c/div\u003e\n            \u003cdiv class=\"hedge__row\"\u003e\n                \u003cdiv class=\"hedge__input-group\"\u003e\n                    \u003clabel class=\"hedge__label\"\u003eفرمت ضرایب\u003c/label\u003e\n                    \u003cselect class=\"hedge__select hedge__original-type\"\u003e\n                        \u003coption value=\"Decimal\"\u003eاعشاری\u003c/option\u003e\n                        \u003coption value=\"Fractional\"\u003eکسری\u003c/option\u003e\n                        \u003coption value=\"American\"\u003eآمریکایی\u003c/option\u003e\n                    \u003c/select\u003e\n                    \u003cspan class=\"hedge__hint\"\u003eفرمت ضرایب را انتخاب کنید\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"hedge__input-group\"\u003e\n                    \u003clabel class=\"hedge__label\"\u003eشانس اصلی\u003c/label\u003e\n                    \u003cinput type=\"text\" class=\"hedge__input hedge__original-odds\" placeholder=\"2.50\" /\u003e\n                    \u003cspan class=\"hedge__hint hedge__original-odds-hint\" data-decimal=\"ضرایب اعشاری وارد کنید (مثلاً 2.50، 1.80، 3.00)\" data-fractional=\"ضرایب کسری وارد کنید (مثلاً 3/1، 5/2، 11/4)\" data-american=\"ضرایب آمریکایی وارد کنید (مثلاً \u0026#43;150، -110، \u0026#43;200)\"\u003eضرایب اعشاری وارد کنید (مثلاً 2.50، 1.80، 3.00)\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"hedge__row\"\u003e\n                \u003cdiv class=\"hedge__input-group\"\u003e\n                    \u003clabel class=\"hedge__label\"\u003eسهام اصلی\u003c/label\u003e\n                    \u003cinput type=\"number\" class=\"hedge__input hedge__original-stake\" placeholder=\"100\" min=\"0\" step=\"0.01\" /\u003e\n                    \u003cspan class=\"hedge__hint\"\u003eمبلغ شرط بندی شده روی شرط اصلی\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"hedge__section\"\u003e\n            \u003cdiv class=\"hedge__section-title\"\u003eمرحله 2: جزئیات شرط پوشش\u003c/div\u003e\n            \u003cdiv class=\"hedge__row\"\u003e\n                \u003cdiv class=\"hedge__input-group\"\u003e\n                    \u003clabel class=\"hedge__label\"\u003eفرمت ضرایب\u003c/label\u003e\n                    \u003cselect class=\"hedge__select hedge__hedge-type\"\u003e\n                        \u003coption value=\"Decimal\"\u003eاعشاری\u003c/option\u003e\n                        \u003coption value=\"Fractional\"\u003eکسری\u003c/option\u003e\n                        \u003coption value=\"American\"\u003eآمریکایی\u003c/option\u003e\n                    \u003c/select\u003e\n                    \u003cspan class=\"hedge__hint\"\u003eفرمت ضرایب پوشش را انتخاب کنید\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"hedge__input-group\"\u003e\n                    \u003clabel class=\"hedge__label\"\u003eشانس پرچین\u003c/label\u003e\n                    \u003cinput type=\"text\" class=\"hedge__input hedge__hedge-odds\" placeholder=\"1.80\" /\u003e\n                    \u003cspan class=\"hedge__hint hedge__hedge-odds-hint\" data-decimal=\"ضرایب اعشاری وارد کنید (مثلاً 2.50، 1.80، 3.00)\" data-fractional=\"ضرایب کسری وارد کنید (مثلاً 3/1، 5/2، 11/4)\" data-american=\"ضرایب آمریکایی وارد کنید (مثلاً \u0026#43;150، -110، \u0026#43;200)\"\u003eضرایب اعشاری وارد کنید (مثلاً 2.50، 1.80، 3.00)\u003c/span\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"hedge__row\"\u003e\n                \u003cdiv class=\"hedge__input-group\"\u003e\n                    \u003clabel class=\"hedge__label\"\u003eحالت پرچین\u003c/label\u003e\n                    \u003cdiv class=\"hedge__mode-row\"\u003e\n                        \u003cbutton type=\"button\" class=\"hedge__mode-btn active\" data-mode=\"equal\"\u003eسود برابر\u003c/button\u003e\n                        \u003cbutton type=\"button\" class=\"hedge__mode-btn\" data-mode=\"noLoss\"\u003eبدون ضرر (سربه‌سر)\u003c/button\u003e\n                    \u003c/div\u003e\n                    \u003cdiv class=\"hedge__mode-hint hedge__mode-description\" data-equal=\"سود برابر: سود یکسان صرف نظر از نتیجه\" data-noloss=\"بدون ضرر: سربه‌سر اگر پوشش ببرد، سود اگر اصلی ببرد\"\u003eسود برابر: سود یکسان صرف نظر از نتیجه\u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n\n        \n        \u003cdiv class=\"hedge__output\"\u003e\n            \u003cdiv class=\"hedge__output-title\"\u003eنتایج\u003c/div\u003e\n\n            \u003cdiv class=\"hedge__result-box\"\u003e\n                \u003cdiv class=\"hedge__result-label\"\u003eسهام پرچین\u003c/div\u003e\n                \u003cdiv class=\"hedge__result-value hedge__hedge-stake-result\"\u003e-\u003c/div\u003e\n                \u003cdiv class=\"hedge__result-hint\"\u003eمبلغ برای شرط بندی روی پوشش\u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"hedge__outcomes\"\u003e\n                \u003cdiv class=\"hedge__outcome\"\u003e\n                    \u003cdiv class=\"hedge__outcome-label\"\u003eدر صورت برنده شدن اورجینال سود کنید\u003c/div\u003e\n                    \u003cdiv class=\"hedge__outcome-value hedge__profit-original\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"hedge__outcome\"\u003e\n                    \u003cdiv class=\"hedge__outcome-label\"\u003eاگر هج برنده شود، سود کنید\u003c/div\u003e\n                    \u003cdiv class=\"hedge__outcome-value hedge__profit-hedge\"\u003e-\u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"hedge__summary\"\u003e\n                \u003cdiv class=\"hedge__summary-title\"\u003eجزئیات\u003c/div\u003e\n                \u003cdiv class=\"hedge__summary-grid\"\u003e\n                    \u003cdiv class=\"hedge__summary-item\"\u003e\n                        \u003cspan\u003eکل سرمایه‌گذاری:\u003c/span\u003e\n                        \u003cspan class=\"hedge__total-invested\"\u003e-\u003c/span\u003e\n                    \u003c/div\u003e\n                    \u003cdiv class=\"hedge__summary-item\"\u003e\n                        \u003cspan\u003eبازگشت اصلی:\u003c/span\u003e\n                        \u003cspan class=\"hedge__original-return\"\u003e-\u003c/span\u003e\n                    \u003c/div\u003e\n                    \u003cdiv class=\"hedge__summary-item\"\u003e\n                        \u003cspan\u003eبازگشت پوشش:\u003c/span\u003e\n                        \u003cspan class=\"hedge__hedge-return\"\u003e-\u003c/span\u003e\n                    \u003c/div\u003e\n                    \u003cdiv class=\"hedge__summary-item\"\u003e\n                        \u003cspan\u003eسود تضمینی:\u003c/span\u003e\n                        \u003cspan class=\"hedge__guaranteed-profit\"\u003e-\u003c/span\u003e\n                    \u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cbutton class=\"hedge__reset\" type=\"button\"\u003eبازنشانی\u003c/button\u003e\n\u003c/section\u003e\n\n\u003cscript\u003e\n(function() {\n    const container = document.currentScript.previousElementSibling;\n\n    const originalTypeSelect = container.querySelector('.hedge__original-type');\n    const originalOddsInput = container.querySelector('.hedge__original-odds');\n    const originalStakeInput = container.querySelector('.hedge__original-stake');\n    const originalOddsHint = container.querySelector('.hedge__original-odds-hint');\n\n    const hedgeTypeSelect = container.querySelector('.hedge__hedge-type');\n    const hedgeOddsInput = container.querySelector('.hedge__hedge-odds');\n    const hedgeOddsHint = container.querySelector('.hedge__hedge-odds-hint');\n\n    const modeBtns = container.querySelectorAll('.hedge__mode-btn');\n    const modeDescription = container.querySelector('.hedge__mode-description');\n    const resetBtn = container.querySelector('.hedge__reset');\n\n    const hedgeStakeResult = container.querySelector('.hedge__hedge-stake-result');\n    const profitOriginal = container.querySelector('.hedge__profit-original');\n    const profitHedge = container.querySelector('.hedge__profit-hedge');\n    const totalInvested = container.querySelector('.hedge__total-invested');\n    const originalReturn = container.querySelector('.hedge__original-return');\n    const hedgeReturn = container.querySelector('.hedge__hedge-return');\n    const guaranteedProfit = container.querySelector('.hedge__guaranteed-profit');\n\n    let selectedMode = 'equal';\n\n    const modeDescriptions = {\n        'equal': modeDescription.dataset.equal,\n        'noLoss': modeDescription.dataset.noloss\n    };\n\n    \n    function validateFractionalCoefficient(coefficient) {\n        return /^\\d+\\/\\d+$/.test(coefficient);\n    }\n\n    function validateDecimalCoefficient(coefficient) {\n        return /^\\d+(\\.\\d+)?$/.test(coefficient) \u0026\u0026 parseFloat(coefficient) \u003e 1;\n    }\n\n    function validateAmericanCoefficient(coefficient) {\n        return /^[-+]?\\d+$/.test(coefficient);\n    }\n\n    \n    function convertFractionToDecimal(fraction) {\n        const parts = fraction.split('/');\n        if (parts.length !== 2) return null;\n        const numerator = parseFloat(parts[0]);\n        const denominator = parseFloat(parts[1]);\n        if (isNaN(numerator) || isNaN(denominator) || denominator === 0) return null;\n        return (numerator / denominator) + 1;\n    }\n\n    function convertAmericanToDecimal(americanOdds) {\n        const oddsValue = parseFloat(americanOdds);\n        if (isNaN(oddsValue)) return null;\n        if (oddsValue \u003e 0) {\n            return (oddsValue / 100) + 1;\n        } else if (oddsValue \u003c 0) {\n            return (100 / Math.abs(oddsValue)) + 1;\n        }\n        return 2;\n    }\n\n    function getDecimalOdds(typeSelect, oddsInput) {\n        const type = typeSelect.value;\n        const odds = oddsInput.value.trim();\n\n        if (type === 'Fractional') {\n            if (!validateFractionalCoefficient(odds)) return null;\n            return convertFractionToDecimal(odds);\n        } else if (type === 'Decimal') {\n            if (!validateDecimalCoefficient(odds)) return null;\n            return parseFloat(odds);\n        } else if (type === 'American') {\n            if (!validateAmericanCoefficient(odds)) return null;\n            return convertAmericanToDecimal(odds);\n        }\n        return null;\n    }\n\n    function calculate() {\n        const origDecimalOdds = getDecimalOdds(originalTypeSelect, originalOddsInput);\n        const hedgeDecimalOdds = getDecimalOdds(hedgeTypeSelect, hedgeOddsInput);\n        const origStake = parseFloat(originalStakeInput.value);\n\n        \n        if (origDecimalOdds === null || origDecimalOdds \u003c= 1) {\n            originalOddsInput.classList.add('invalid');\n            resetOutput();\n            return;\n        } else {\n            originalOddsInput.classList.remove('invalid');\n        }\n\n        \n        if (hedgeDecimalOdds === null || hedgeDecimalOdds \u003c= 1) {\n            hedgeOddsInput.classList.add('invalid');\n            resetOutput();\n            return;\n        } else {\n            hedgeOddsInput.classList.remove('invalid');\n        }\n\n        \n        if (isNaN(origStake) || origStake \u003c= 0) {\n            resetOutput();\n            return;\n        }\n\n        \n        const origPotentialReturn = origStake * origDecimalOdds;\n\n        let hedgeStake;\n\n        if (selectedMode === 'equal') {\n            \n            hedgeStake = origPotentialReturn / hedgeDecimalOdds;\n        } else {\n            \n            hedgeStake = origStake / (hedgeDecimalOdds - 1);\n        }\n\n        const hedgePotentialReturn = hedgeStake * hedgeDecimalOdds;\n        const totalStake = origStake + hedgeStake;\n\n        \n        const profitIfOriginalWins = origPotentialReturn - totalStake;\n        const profitIfHedgeWins = hedgePotentialReturn - totalStake;\n\n        \n        hedgeStakeResult.textContent = '$' + hedgeStake.toFixed(2);\n\n        profitOriginal.textContent = '$' + profitIfOriginalWins.toFixed(2);\n        profitOriginal.className = 'hedge__outcome-value ' + (profitIfOriginalWins \u003e= 0 ? 'positive' : 'negative');\n\n        profitHedge.textContent = '$' + profitIfHedgeWins.toFixed(2);\n        profitHedge.className = 'hedge__outcome-value ' + (profitIfHedgeWins \u003e= 0 ? 'positive' : (profitIfHedgeWins \u003e -0.01 ? 'neutral' : 'negative'));\n\n        totalInvested.textContent = '$' + totalStake.toFixed(2);\n        originalReturn.textContent = '$' + origPotentialReturn.toFixed(2);\n        hedgeReturn.textContent = '$' + hedgePotentialReturn.toFixed(2);\n\n        const minProfit = Math.min(profitIfOriginalWins, profitIfHedgeWins);\n        guaranteedProfit.textContent = '$' + minProfit.toFixed(2);\n    }\n\n    function resetOutput() {\n        hedgeStakeResult.textContent = '-';\n        profitOriginal.textContent = '-';\n        profitOriginal.className = 'hedge__outcome-value';\n        profitHedge.textContent = '-';\n        profitHedge.className = 'hedge__outcome-value';\n        totalInvested.textContent = '-';\n        originalReturn.textContent = '-';\n        hedgeReturn.textContent = '-';\n        guaranteedProfit.textContent = '-';\n    }\n\n    function resetAll() {\n        originalOddsInput.value = '';\n        originalStakeInput.value = '';\n        hedgeOddsInput.value = '';\n        originalOddsInput.classList.remove('invalid');\n        hedgeOddsInput.classList.remove('invalid');\n\n        modeBtns.forEach(btn =\u003e btn.classList.remove('active'));\n        modeBtns[0].classList.add('active');\n        selectedMode = 'equal';\n        modeDescription.textContent = modeDescriptions['equal'];\n\n        updatePlaceholder(originalTypeSelect, originalOddsInput, originalOddsHint);\n        updatePlaceholder(hedgeTypeSelect, hedgeOddsInput, hedgeOddsHint);\n\n        resetOutput();\n    }\n\n    \n    function updatePlaceholder(typeSelect, oddsInput, hintEl) {\n        const type = typeSelect.value;\n        if (type === 'Fractional') {\n            oddsInput.placeholder = '3/1';\n            hintEl.textContent = hintEl.dataset.fractional;\n        } else if (type === 'Decimal') {\n            oddsInput.placeholder = '2.50';\n            hintEl.textContent = hintEl.dataset.decimal;\n        } else if (type === 'American') {\n            oddsInput.placeholder = '+150';\n            hintEl.textContent = hintEl.dataset.american;\n        }\n    }\n\n    \n    originalTypeSelect.addEventListener('change', function() {\n        updatePlaceholder(originalTypeSelect, originalOddsInput, originalOddsHint);\n        calculate();\n    });\n\n    hedgeTypeSelect.addEventListener('change', function() {\n        updatePlaceholder(hedgeTypeSelect, hedgeOddsInput, hedgeOddsHint);\n        calculate();\n    });\n\n    originalOddsInput.addEventListener('input', calculate);\n    originalStakeInput.addEventListener('input', calculate);\n    hedgeOddsInput.addEventListener('input', calculate);\n\n    modeBtns.forEach(btn =\u003e {\n        btn.addEventListener('click', function() {\n            modeBtns.forEach(b =\u003e b.classList.remove('active'));\n            this.classList.add('active');\n            selectedMode = this.dataset.mode;\n            modeDescription.textContent = modeDescriptions[selectedMode];\n            calculate();\n        });\n    });\n\n    resetBtn.addEventListener('click', resetAll);\n\n    \n    updatePlaceholder(originalTypeSelect, originalOddsInput, originalOddsHint);\n    updatePlaceholder(hedgeTypeSelect, hedgeOddsInput, hedgeOddsHint);\n})();\n\u003c/script\u003e","title":"ماشین‌حساب هج - سود تضمینی"},{"content":" ماشین حساب معلولیت آسیایی مرحله 1: فرمت ضرایب را انتخاب کنید اعشاری هنگ کنگ مالایی اندونزیایی مرحله 2: جزئیات شرط را وارد کنید مبلغ شرط مبلغی که می‌خواهید شرط ببندید ضرایب ضرایب از بوکمیکر شما مرحله 3: هندیکپ را انتخاب کنید -2.5 -2.25 -2 -1.75 -1.5 -1.25 -1 -0.75 -0.5 -0.25 0 +0.25 +0.5 +0.75 +1 +1.25 +1.5 +1.75 +2 +2.25 +2.5 برای انتخاب مقدار هندیکپ کلیک کنید هندیکپ را برای دیدن توضیح انتخاب کنید. نتایج اگر تیم شما ببرد برد برد احتمالی — سود — سناریوی نیم برد نیمه برد برد احتمالی — سود — اگر تساوی شود باطل برد احتمالی — سود — سناریوی نیم باخت نیمه باخت برد احتمالی — سود — اگر تیم شما ببازد باخت برد احتمالی — سود — بازنشانی ","permalink":"https://calculators-odds.com/fa/asian-handicap-calculator/","summary":"\u003cstyle\u003e\n.asian {\n    margin: 15px 0;\n    background-color: #1e2328;\n    border-radius: 8px;\n    padding: 20px;\n    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);\n    color: #e8e8e8;\n}\n\n.asian__title {\n    font-size: 22px;\n    font-weight: bold;\n    text-align: center;\n    margin-bottom: 25px;\n    color: #e8e8e8;\n}\n\n.asian__section {\n    background: #2d333b;\n    border-radius: 6px;\n    padding: 15px;\n    margin-bottom: 15px;\n}\n\n.asian__section-title {\n    font-size: 14px;\n    font-weight: 600;\n    color: #4CAF50;\n    margin-bottom: 15px;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n}\n\n.asian__format-selector {\n    display: flex;\n    gap: 8px;\n    flex-wrap: wrap;\n}\n\n.asian__format-btn {\n    flex: 1;\n    min-width: 80px;\n    padding: 10px 12px;\n    border: 2px solid #4CAF50;\n    background: transparent;\n    color: #e8e8e8;\n    cursor: pointer;\n    border-radius: 4px;\n    font-size: 13px;\n    font-weight: 500;\n    transition: all 0.2s;\n}\n\n.asian__format-btn:hover {\n    background: rgba(76, 175, 80, 0.2);\n}\n\n.asian__format-btn.active {\n    background: #4CAF50;\n    color: #fff;\n}\n\n.asian__row {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 15px;\n}\n\n.asian__input-group {\n    display: flex;\n    flex-direction: column;\n    gap: 5px;\n}\n\n.asian__label {\n    font-size: 13px;\n    color: rgba(232, 232, 232, 0.8);\n}\n\n.asian__input {\n    width: 100%;\n    padding: 12px;\n    border: 1px solid rgba(255, 255, 255, 0.1);\n    border-radius: 4px;\n    font-size: 16px;\n    background: #2d333b;\n    color: #e8e8e8;\n    transition: border-color 0.2s;\n    box-sizing: border-box;\n}\n\n.asian__input:focus {\n    outline: none;\n    border-color: #4CAF50;\n}\n\n.asian__input::placeholder {\n    color: rgba(232, 232, 232, 0.4);\n}\n\n.asian__hint {\n    font-size: 11px;\n    color: rgba(232, 232, 232, 0.5);\n    margin-top: 8px;\n}\n\n.asian__handicap-grid {\n    display: grid;\n    grid-template-columns: repeat(7, 1fr);\n    gap: 6px;\n}\n\n.asian__handicap-btn {\n    padding: 8px 4px;\n    border: 1px solid rgba(255, 255, 255, 0.2);\n    background: rgba(0, 0, 0, 0.2);\n    color: #e8e8e8;\n    cursor: pointer;\n    border-radius: 4px;\n    font-size: 12px;\n    font-weight: 500;\n    transition: all 0.2s;\n}\n\n.asian__handicap-btn:hover {\n    border-color: #2196F3;\n    background: rgba(33, 150, 243, 0.2);\n}\n\n.asian__handicap-btn.active {\n    background: #2196F3;\n    border-color: #2196F3;\n    color: #fff;\n}\n\n.asian__handicap-btn.positive {\n    border-color: rgba(76, 175, 80, 0.4);\n}\n\n.asian__handicap-btn.negative {\n    border-color: rgba(244, 67, 54, 0.4);\n}\n\n.asian__explanation {\n    margin-top: 15px;\n    padding: 12px;\n    background: rgba(33, 150, 243, 0.1);\n    border: 1px solid rgba(33, 150, 243, 0.3);\n    border-radius: 4px;\n    font-size: 13px;\n    line-height: 1.5;\n}\n\n.asian__scenarios {\n    display: flex;\n    flex-direction: column;\n    gap: 10px;\n}\n\n.asian__scenario {\n    background: rgba(0, 0, 0, 0.2);\n    border-radius: 4px;\n    padding: 12px;\n    display: none;\n}\n\n.asian__scenario.visible {\n    display: block;\n}\n\n.asian__scenario-header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    margin-bottom: 8px;\n}\n\n.asian__scenario-title {\n    font-size: 13px;\n    font-weight: 600;\n    color: rgba(232, 232, 232, 0.9);\n}\n\n.asian__scenario-result {\n    font-size: 12px;\n    font-weight: 600;\n    padding: 4px 10px;\n    border-radius: 3px;\n}\n\n.asian__scenario-result.win {\n    background: rgba(76, 175, 80, 0.2);\n    color: #4CAF50;\n}\n\n.asian__scenario-result.lose {\n    background: rgba(244, 67, 54, 0.2);\n    color: #f44336;\n}\n\n.asian__scenario-result.half-win {\n    background: rgba(139, 195, 74, 0.2);\n    color: #8BC34A;\n}\n\n.asian__scenario-result.half-lose {\n    background: rgba(255, 152, 0, 0.2);\n    color: #ff9800;\n}\n\n.asian__scenario-result.push {\n    background: rgba(158, 158, 158, 0.2);\n    color: #9e9e9e;\n}\n\n.asian__scenario-values {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 10px;\n}\n\n.asian__scenario-item {\n    display: flex;\n    flex-direction: column;\n    gap: 2px;\n}\n\n.asian__scenario-label {\n    font-size: 10px;\n    color: rgba(232, 232, 232, 0.6);\n    text-transform: uppercase;\n}\n\n.asian__scenario-value {\n    font-size: 16px;\n    font-weight: 700;\n}\n\n.asian__scenario-value.positive {\n    color: #4CAF50;\n}\n\n.asian__scenario-value.negative {\n    color: #f44336;\n}\n\n.asian__scenario-value.neutral {\n    color: #9e9e9e;\n}\n\n.asian__buttons {\n    display: flex;\n    justify-content: center;\n    margin-top: 15px;\n}\n\n.asian__btn {\n    padding: 10px 30px;\n    border: none;\n    border-radius: 4px;\n    font-size: 14px;\n    font-weight: 500;\n    cursor: pointer;\n    transition: all 0.2s;\n}\n\n.asian__btn--secondary {\n    background: #666;\n    color: #fff;\n}\n\n.asian__btn--secondary:hover {\n    background: #555;\n}\n\n@media (max-width: 600px) {\n    .asian__row {\n        grid-template-columns: 1fr;\n    }\n\n    .asian__handicap-grid {\n        grid-template-columns: repeat(5, 1fr);\n    }\n\n    .asian__format-btn {\n        min-width: 70px;\n        font-size: 12px;\n    }\n\n    .asian__scenario-values {\n        grid-template-columns: 1fr;\n    }\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"asian\"\u003e\n    \u003cdiv class=\"asian__title\"\u003eماشین حساب معلولیت آسیایی\u003c/div\u003e\n\n    \u003cdiv class=\"asian__section\"\u003e\n        \u003cdiv class=\"asian__section-title\"\u003eمرحله 1: فرمت ضرایب را انتخاب کنید\u003c/div\u003e\n        \u003cdiv class=\"asian__format-selector\"\u003e\n            \u003cbutton type=\"button\" class=\"asian__format-btn active\" data-type=\"decimal\"\u003eاعشاری\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__format-btn\" data-type=\"hongkong\"\u003eهنگ کنگ\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__format-btn\" data-type=\"malay\"\u003eمالایی\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__format-btn\" data-type=\"indonesian\"\u003eاندونزیایی\u003c/button\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"asian__section\"\u003e\n        \u003cdiv class=\"asian__section-title\"\u003eمرحله 2: جزئیات شرط را وارد کنید\u003c/div\u003e\n        \u003cdiv class=\"asian__row\"\u003e\n            \u003cdiv class=\"asian__input-group\"\u003e\n                \u003clabel class=\"asian__label\"\u003eمبلغ شرط\u003c/label\u003e\n                \u003cinput type=\"text\" class=\"asian__input asian__stake\" placeholder=\"100\"\u003e\n                \u003cspan class=\"asian__hint\"\u003eمبلغی که می‌خواهید شرط ببندید\u003c/span\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"asian__input-group\"\u003e\n                \u003clabel class=\"asian__label\"\u003eضرایب\u003c/label\u003e\n                \u003cinput type=\"text\" class=\"asian__input asian__odds\" placeholder=\"1.90\"\u003e\n                \u003cspan class=\"asian__hint\"\u003eضرایب از بوکمیکر شما\u003c/span\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"asian__section\"\u003e\n        \u003cdiv class=\"asian__section-title\"\u003eمرحله 3: هندیکپ را انتخاب کنید\u003c/div\u003e\n        \u003cdiv class=\"asian__handicap-grid\"\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn negative\" data-handicap=\"-2.5\"\u003e-2.5\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn negative\" data-handicap=\"-2.25\"\u003e-2.25\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn negative\" data-handicap=\"-2\"\u003e-2\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn negative\" data-handicap=\"-1.75\"\u003e-1.75\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn negative\" data-handicap=\"-1.5\"\u003e-1.5\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn negative\" data-handicap=\"-1.25\"\u003e-1.25\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn negative\" data-handicap=\"-1\"\u003e-1\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn negative\" data-handicap=\"-0.75\"\u003e-0.75\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn negative\" data-handicap=\"-0.5\"\u003e-0.5\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn negative\" data-handicap=\"-0.25\"\u003e-0.25\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn active\" data-handicap=\"0\"\u003e0\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn positive\" data-handicap=\"+0.25\"\u003e+0.25\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn positive\" data-handicap=\"+0.5\"\u003e+0.5\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn positive\" data-handicap=\"+0.75\"\u003e+0.75\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn positive\" data-handicap=\"+1\"\u003e+1\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn positive\" data-handicap=\"+1.25\"\u003e+1.25\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn positive\" data-handicap=\"+1.5\"\u003e+1.5\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn positive\" data-handicap=\"+1.75\"\u003e+1.75\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn positive\" data-handicap=\"+2\"\u003e+2\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn positive\" data-handicap=\"+2.25\"\u003e+2.25\u003c/button\u003e\n            \u003cbutton type=\"button\" class=\"asian__handicap-btn positive\" data-handicap=\"+2.5\"\u003e+2.5\u003c/button\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"asian__hint\"\u003eبرای انتخاب مقدار هندیکپ کلیک کنید\u003c/div\u003e\n        \u003cdiv class=\"asian__explanation\" id=\"asianExplanation\"\u003e\n            هندیکپ را برای دیدن توضیح انتخاب کنید.\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"asian__section\"\u003e\n        \u003cdiv class=\"asian__section-title\"\u003eنتایج\u003c/div\u003e\n        \u003cdiv class=\"asian__scenarios\"\u003e\n            \u003cdiv class=\"asian__scenario visible\" id=\"asianWin\"\u003e\n                \u003cdiv class=\"asian__scenario-header\"\u003e\n                    \u003cspan class=\"asian__scenario-title\" id=\"asianWinTitle\"\u003eاگر تیم شما ببرد\u003c/span\u003e\n                    \u003cspan class=\"asian__scenario-result win\"\u003eبرد\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"asian__scenario-values\"\u003e\n                    \u003cdiv class=\"asian__scenario-item\"\u003e\n                        \u003cspan class=\"asian__scenario-label\"\u003eبرد احتمالی\u003c/span\u003e\n                        \u003cspan class=\"asian__scenario-value\" id=\"asianWinPayout\"\u003e—\u003c/span\u003e\n                    \u003c/div\u003e\n                    \u003cdiv class=\"asian__scenario-item\"\u003e\n                        \u003cspan class=\"asian__scenario-label\"\u003eسود\u003c/span\u003e\n                        \u003cspan class=\"asian__scenario-value positive\" id=\"asianWinProfit\"\u003e—\u003c/span\u003e\n                    \u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"asian__scenario\" id=\"asianHalfWin\"\u003e\n                \u003cdiv class=\"asian__scenario-header\"\u003e\n                    \u003cspan class=\"asian__scenario-title\" id=\"asianHalfWinTitle\"\u003eسناریوی نیم برد\u003c/span\u003e\n                    \u003cspan class=\"asian__scenario-result half-win\"\u003eنیمه برد\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"asian__scenario-values\"\u003e\n                    \u003cdiv class=\"asian__scenario-item\"\u003e\n                        \u003cspan class=\"asian__scenario-label\"\u003eبرد احتمالی\u003c/span\u003e\n                        \u003cspan class=\"asian__scenario-value\" id=\"asianHalfWinPayout\"\u003e—\u003c/span\u003e\n                    \u003c/div\u003e\n                    \u003cdiv class=\"asian__scenario-item\"\u003e\n                        \u003cspan class=\"asian__scenario-label\"\u003eسود\u003c/span\u003e\n                        \u003cspan class=\"asian__scenario-value positive\" id=\"asianHalfWinProfit\"\u003e—\u003c/span\u003e\n                    \u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"asian__scenario\" id=\"asianDraw\"\u003e\n                \u003cdiv class=\"asian__scenario-header\"\u003e\n                    \u003cspan class=\"asian__scenario-title\" id=\"asianDrawTitle\"\u003eاگر تساوی شود\u003c/span\u003e\n                    \u003cspan class=\"asian__scenario-result push\"\u003eباطل\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"asian__scenario-values\"\u003e\n                    \u003cdiv class=\"asian__scenario-item\"\u003e\n                        \u003cspan class=\"asian__scenario-label\"\u003eبرد احتمالی\u003c/span\u003e\n                        \u003cspan class=\"asian__scenario-value\" id=\"asianDrawPayout\"\u003e—\u003c/span\u003e\n                    \u003c/div\u003e\n                    \u003cdiv class=\"asian__scenario-item\"\u003e\n                        \u003cspan class=\"asian__scenario-label\"\u003eسود\u003c/span\u003e\n                        \u003cspan class=\"asian__scenario-value neutral\" id=\"asianDrawProfit\"\u003e—\u003c/span\u003e\n                    \u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"asian__scenario\" id=\"asianHalfLose\"\u003e\n                \u003cdiv class=\"asian__scenario-header\"\u003e\n                    \u003cspan class=\"asian__scenario-title\" id=\"asianHalfLoseTitle\"\u003eسناریوی نیم باخت\u003c/span\u003e\n                    \u003cspan class=\"asian__scenario-result half-lose\"\u003eنیمه باخت\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"asian__scenario-values\"\u003e\n                    \u003cdiv class=\"asian__scenario-item\"\u003e\n                        \u003cspan class=\"asian__scenario-label\"\u003eبرد احتمالی\u003c/span\u003e\n                        \u003cspan class=\"asian__scenario-value\" id=\"asianHalfLosePayout\"\u003e—\u003c/span\u003e\n                    \u003c/div\u003e\n                    \u003cdiv class=\"asian__scenario-item\"\u003e\n                        \u003cspan class=\"asian__scenario-label\"\u003eسود\u003c/span\u003e\n                        \u003cspan class=\"asian__scenario-value negative\" id=\"asianHalfLoseProfit\"\u003e—\u003c/span\u003e\n                    \u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n\n            \u003cdiv class=\"asian__scenario visible\" id=\"asianLose\"\u003e\n                \u003cdiv class=\"asian__scenario-header\"\u003e\n                    \u003cspan class=\"asian__scenario-title\" id=\"asianLoseTitle\"\u003eاگر تیم شما ببازد\u003c/span\u003e\n                    \u003cspan class=\"asian__scenario-result lose\"\u003eباخت\u003c/span\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"asian__scenario-values\"\u003e\n                    \u003cdiv class=\"asian__scenario-item\"\u003e\n                        \u003cspan class=\"asian__scenario-label\"\u003eبرد احتمالی\u003c/span\u003e\n                        \u003cspan class=\"asian__scenario-value\" id=\"asianLosePayout\"\u003e—\u003c/span\u003e\n                    \u003c/div\u003e\n                    \u003cdiv class=\"asian__scenario-item\"\u003e\n                        \u003cspan class=\"asian__scenario-label\"\u003eسود\u003c/span\u003e\n                        \u003cspan class=\"asian__scenario-value negative\" id=\"asianLoseProfit\"\u003e—\u003c/span\u003e\n                    \u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"asian__buttons\"\u003e\n        \u003cbutton type=\"button\" class=\"asian__btn asian__btn--secondary\" id=\"asianReset\"\u003eبازنشانی\u003c/button\u003e\n    \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    const container = document.currentScript.previousElementSibling;\n    let currentOddsType = 'decimal';\n    let currentHandicap = 0;\n\n    function toDecimalOdds(value, type) {\n        const num = parseFloat(value);\n        if (isNaN(num)) return null;\n\n        switch(type) {\n            case 'decimal':\n                return num \u003e 1 ? num : null;\n            case 'hongkong':\n                return num + 1;\n            case 'malay':\n                return num \u003e= 0 ? num + 1 : 1 - (1 / num);\n            case 'indonesian':\n                return num \u003e= 0 ? num + 1 : 1 - (1 / num);\n            default:\n                return num;\n        }\n    }\n\n    function isQuarterHandicap(h) {\n        return h % 0.5 !== 0 \u0026\u0026 h % 0.25 === 0;\n    }\n\n    function isWholeHandicap(h) {\n        return h % 1 === 0;\n    }\n\n    function getExplanation(h) {\n        if (h === 0) {\n            return '0 (تساوی بدون شرط): تیم شما باید ببرد. در صورت تساوی، شرط شما برگردانده می‌شود. اگر تیم شما ببازد، شرط خود را از دست می‌دهید.';\n        }\n\n        if (isQuarterHandicap(h)) {\n            if (h \u003e 0) {\n                return `\u003cstrong\u003e${h \u003e 0 ? '+' : ''}${h} handicap:\u003c/strong\u003e Your bet is split between ${h - 0.25} and ${h + 0.25}. Your team starts with a ${h} goal advantage. Half-win or half-lose possible.`;\n            } else {\n                return `\u003cstrong\u003e${h} handicap:\u003c/strong\u003e Your bet is split between ${h - 0.25} and ${h + 0.25}. Your team must overcome a ${Math.abs(h)} goal deficit. Half-win or half-lose possible.`;\n            }\n        }\n\n        if (h % 1 === 0.5 || h % 1 === -0.5) {\n            if (h \u003e 0) {\n                return `\u003cstrong\u003e+${h} handicap:\u003c/strong\u003e Your team starts with a ${h} goal head start. No draws possible - clear win or lose result only.`;\n            } else {\n                return `\u003cstrong\u003e${h} handicap:\u003c/strong\u003e Your team must win by more than ${Math.abs(h)} goals. No draws possible - clear win or lose.`;\n            }\n        }\n\n        if (isWholeHandicap(h)) {\n            if (h \u003e 0) {\n                return `\u003cstrong\u003e+${h} handicap:\u003c/strong\u003e Your team starts with ${h} goal(s) advantage. If the adjusted result is a draw, stake is returned (push).`;\n            } else {\n                return `\u003cstrong\u003e${h} handicap:\u003c/strong\u003e Your team must win by more than ${Math.abs(h)} goal(s). Exact match returns stake (push).`;\n            }\n        }\n\n        return \"Select a handicap to see explanation.\";\n    }\n\n    function calculate() {\n        const stake = parseFloat(container.querySelector('.asian__stake').value) || 0;\n        const oddsInput = container.querySelector('.asian__odds').value;\n        const decimalOdds = toDecimalOdds(oddsInput, currentOddsType);\n        const h = parseFloat(currentHandicap);\n\n        container.querySelector('#asianExplanation').innerHTML = getExplanation(h);\n\n        const isQuarter = isQuarterHandicap(h);\n        const isWhole = isWholeHandicap(h);\n        const isHalf = h % 1 === 0.5 || h % 1 === -0.5;\n\n        \n        container.querySelector('#asianWin').classList.add('visible');\n        container.querySelector('#asianLose').classList.add('visible');\n        container.querySelector('#asianDraw').classList.toggle('visible', isWhole || h === 0);\n        container.querySelector('#asianHalfWin').classList.toggle('visible', isQuarter);\n        container.querySelector('#asianHalfLose').classList.toggle('visible', isQuarter);\n\n        \n        if (h === 0) {\n            container.querySelector('#asianWinTitle').textContent = 'اگر تیم شما ببرد';\n            container.querySelector('#asianDrawTitle').textContent = 'اگر تساوی شود';\n            container.querySelector('#asianLoseTitle').textContent = 'اگر تیم شما ببازد';\n        } else if (h \u003e 0) {\n            container.querySelector('#asianWinTitle').textContent = `Your Team can lose by less than ${Math.abs(h)}`;\n            if (isWhole) container.querySelector('#asianDrawTitle').textContent = `If Your Team loses by exactly ${Math.abs(h)}`;\n            container.querySelector('#asianLoseTitle').textContent = `If Your Team loses by more than ${Math.abs(h)}`;\n        } else {\n            container.querySelector('#asianWinTitle').textContent = `If Your Team wins by more than ${Math.abs(h)}`;\n            if (isWhole) container.querySelector('#asianDrawTitle').textContent = `If Your Team wins by exactly ${Math.abs(h)}`;\n            container.querySelector('#asianLoseTitle').textContent = `Your Team wins by less than ${Math.abs(h)} or loses`;\n        }\n\n        if (isQuarter) {\n            if (h \u003e 0) {\n                container.querySelector('#asianHalfWinTitle').textContent = `If Your Team loses by ${Math.floor(Math.abs(h))}`;\n                container.querySelector('#asianHalfLoseTitle').textContent = `If Your Team loses by ${Math.ceil(Math.abs(h))}`;\n            } else {\n                container.querySelector('#asianHalfWinTitle').textContent = `If Your Team wins by ${Math.ceil(Math.abs(h))}`;\n                container.querySelector('#asianHalfLoseTitle').textContent = `If Your Team wins by ${Math.floor(Math.abs(h))}`;\n            }\n        }\n\n        if (!decimalOdds || stake \u003c= 0) {\n            ['Win', 'Draw', 'HalfWin', 'HalfLose', 'Lose'].forEach(type =\u003e {\n                container.querySelector(`#asian${type}Payout`).textContent = '—';\n                container.querySelector(`#asian${type}Profit`).textContent = '—';\n            });\n            return;\n        }\n\n        const profit = stake * (decimalOdds - 1);\n\n        \n        container.querySelector('#asianWinPayout').textContent = '$' + (stake + profit).toFixed(2);\n        container.querySelector('#asianWinProfit').textContent = '+$' + profit.toFixed(2);\n\n        \n        container.querySelector('#asianLosePayout').textContent = '$0.00';\n        container.querySelector('#asianLoseProfit').textContent = '-$' + stake.toFixed(2);\n\n        \n        if (isWhole || h === 0) {\n            container.querySelector('#asianDrawPayout').textContent = '$' + stake.toFixed(2);\n            container.querySelector('#asianDrawProfit').textContent = '$0.00';\n        }\n\n        \n        if (isQuarter) {\n            const halfProfit = profit / 2;\n            const halfLoss = stake / 2;\n\n            container.querySelector('#asianHalfWinPayout').textContent = '$' + (stake + halfProfit).toFixed(2);\n            container.querySelector('#asianHalfWinProfit').textContent = '+$' + halfProfit.toFixed(2);\n\n            container.querySelector('#asianHalfLosePayout').textContent = '$' + (stake - halfLoss).toFixed(2);\n            container.querySelector('#asianHalfLoseProfit').textContent = '-$' + halfLoss.toFixed(2);\n        }\n    }\n\n    function reset() {\n        container.querySelector('.asian__stake').value = '';\n        container.querySelector('.asian__odds').value = '';\n\n        container.querySelectorAll('.asian__handicap-btn').forEach(btn =\u003e {\n            btn.classList.remove('active');\n            if (btn.dataset.handicap === '0') btn.classList.add('active');\n        });\n        currentHandicap = 0;\n\n        calculate();\n    }\n\n    \n    container.querySelectorAll('.asian__format-btn').forEach(btn =\u003e {\n        btn.addEventListener('click', function() {\n            container.querySelectorAll('.asian__format-btn').forEach(b =\u003e b.classList.remove('active'));\n            this.classList.add('active');\n            currentOddsType = this.dataset.type;\n            calculate();\n        });\n    });\n\n    container.querySelectorAll('.asian__handicap-btn').forEach(btn =\u003e {\n        btn.addEventListener('click', function() {\n            container.querySelectorAll('.asian__handicap-btn').forEach(b =\u003e b.classList.remove('active'));\n            this.classList.add('active');\n            currentHandicap = this.dataset.handicap;\n            calculate();\n        });\n    });\n\n    container.querySelector('.asian__stake').addEventListener('input', calculate);\n    container.querySelector('.asian__odds').addEventListener('input', calculate);\n    container.querySelector('#asianReset').addEventListener('click', reset);\n\n    calculate();\n})();\n\u003c/script\u003e","title":"ماشین‌حساب هندیکپ آسیایی - بازده شرط AH"},{"content":" فرمت ضرایب اعشاری کسری آمریکایی انتخاب 1 انتخاب 2 انتخاب 3 انتخاب 4 سهام واحد تعداد شرط ها 11 کل سهام - پرداخت - سود - بازنشانی کنید ","permalink":"https://calculators-odds.com/fa/yankee-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"yankee_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eفرمت ضرایب\u003c/label\u003e\n        \u003cselect class=\"calc-wrap__select js-format\"\u003e\n            \u003coption value=\"Decimal\"\u003eاعشاری\u003c/option\u003e\n            \u003coption value=\"Fractional\"\u003eکسری\u003c/option\u003e\n            \u003coption value=\"American\"\u003eآمریکایی\u003c/option\u003e\n        \u003c/select\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__selections\"\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 1\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 2\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 3\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n        \u003cdiv class=\"calc-wrap__row\"\u003e\n            \u003clabel class=\"calc-wrap__label\"\u003eانتخاب 4\u003c/label\u003e\n            \u003cinput class=\"calc-wrap__input js-odds\" type=\"text\" placeholder=\"2.50\" /\u003e\n        \u003c/div\u003e\n        \n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eسهام واحد\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-stake\" type=\"text\" placeholder=\"10\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eتعداد شرط ها\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value\"\u003e11\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eکل سهام\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-totalstake\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eپرداخت\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-payout\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eسود\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value calc-wrap__result-value--profit js-profit\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003eبازنشانی کنید\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var FOLDS = [2, 3, 4];\n    var root = document.getElementById('yankee_0');\n    var formatEl = root.querySelector('.js-format');\n    var stakeEl = root.querySelector('.js-stake');\n    var payoutEl = root.querySelector('.js-payout');\n    var profitEl = root.querySelector('.js-profit');\n    var totalStakeEl = root.querySelector('.js-totalstake');\n    var resetBtn = root.querySelector('.js-reset');\n\n    function update() {\n        var format = formatEl.value;\n        var inputs = root.querySelectorAll('.js-odds');\n        var odds = [], allValid = true;\n        inputs.forEach(function(input) {\n            var d = convertToDecimal(input.value.trim(), format);\n            if (d === null \u0026\u0026 input.value.trim()) { input.classList.add('invalid'); allValid = false; }\n            else { input.classList.remove('invalid'); if (d) odds.push(d); else allValid = false; }\n        });\n        var unitStake = parseFloat(stakeEl.value);\n        if (!allValid || !unitStake || unitStake \u003c= 0) { totalStakeEl.textContent = '-'; payoutEl.textContent = '-'; profitEl.textContent = '-'; return; }\n        var r = calcSystemBet(odds, unitStake, FOLDS);\n        totalStakeEl.textContent = formatNumber(r.totalStake);\n        payoutEl.textContent = formatNumber(r.totalPayout);\n        profitEl.textContent = formatNumber(r.totalPayout - r.totalStake);\n    }\n\n    formatEl.addEventListener('change', function() { root.querySelectorAll('.js-odds').forEach(function(i){i.placeholder=getOddsPlaceholder(formatEl.value);}); update(); });\n    root.addEventListener('input', update);\n    resetBtn.addEventListener('click', function() {\n        root.querySelectorAll('.js-odds').forEach(function(i){i.value='';i.classList.remove('invalid');});\n        stakeEl.value=''; formatEl.selectedIndex=0; totalStakeEl.textContent='-'; payoutEl.textContent='-'; profitEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"ماشین‌حساب یانکی - 4 انتخاب 11 شرط"},{"content":" گسترش نقطه مانی لاین مورد علاقه - مانی لاین ضعیف - Prob مورد علاقه ضمنی - مشکل ضمنی Underdog - خط پول گسترش تخمینی - بازنشانی کنید ","permalink":"https://calculators-odds.com/fa/spread-moneyline-calculator/","summary":"\u003cdiv class=\"calc-wrap\" id=\"spreadml_0\"\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eگسترش نقطه\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-spread\" type=\"text\" placeholder=\"-3.5\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eمانی لاین مورد علاقه\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-favml\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eمانی لاین ضعیف\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-dogml\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eProb مورد علاقه ضمنی\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-favprob\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eمشکل ضمنی Underdog\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-dogprob\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__separator\"\u003e\u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__row\"\u003e\n        \u003clabel class=\"calc-wrap__label\"\u003eخط پول\u003c/label\u003e\n        \u003cinput class=\"calc-wrap__input js-ml\" type=\"text\" placeholder=\"-150\" /\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"calc-wrap__results\"\u003e\n        \u003cdiv class=\"calc-wrap__result-item\"\u003e\n            \u003cspan class=\"calc-wrap__result-label\"\u003eگسترش تخمینی\u003c/span\u003e\n            \u003cspan class=\"calc-wrap__result-value js-estspr\"\u003e-\u003c/span\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbutton class=\"calc-wrap__btn js-reset\" type=\"button\"\u003eبازنشانی کنید\u003c/button\u003e\n\u003c/div\u003e\n\n\u003cscript\u003e\n(function() {\n    var root = document.getElementById('spreadml_0');\n    var spreadEl = root.querySelector('.js-spread');\n    var favMlEl = root.querySelector('.js-favml');\n    var dogMlEl = root.querySelector('.js-dogml');\n    var favProbEl = root.querySelector('.js-favprob');\n    var dogProbEl = root.querySelector('.js-dogprob');\n    var mlEl = root.querySelector('.js-ml');\n    var estSprEl = root.querySelector('.js-estspr');\n    var resetBtn = root.querySelector('.js-reset');\n\n    \n    \n    function spreadToMoneyline(spread) {\n        var absSpread = Math.abs(spread);\n        \n        var prob = 0.5 + (absSpread * 0.03); \n        if (prob \u003e= 0.99) prob = 0.99;\n        var favML, dogML;\n        if (prob \u003e= 0.5) {\n            favML = Math.round(-100 * prob / (1 - prob));\n            dogML = Math.round(100 * (1 - prob) / prob);\n        } else {\n            favML = Math.round(100 * (1 - prob) / prob);\n            dogML = Math.round(-100 * prob / (1 - prob));\n        }\n        return { favML: favML, dogML: dogML \u003e 0 ? '+' + dogML : '' + dogML, favProb: prob, dogProb: 1 - prob, favMLstr: favML \u003c 0 ? '' + favML : '+' + favML };\n    }\n\n    function moneylineToSpread(ml) {\n        var prob;\n        if (ml \u003c 0) prob = Math.abs(ml) / (Math.abs(ml) + 100);\n        else prob = 100 / (ml + 100);\n        var spread = (prob - 0.5) / 0.03;\n        return spread;\n    }\n\n    function updateSpread() {\n        var spread = parseFloat(spreadEl.value);\n        if (isNaN(spread)) {\n            favMlEl.textContent='-'; dogMlEl.textContent='-'; favProbEl.textContent='-'; dogProbEl.textContent='-'; return;\n        }\n        var result = spreadToMoneyline(spread);\n        favMlEl.textContent = result.favMLstr;\n        dogMlEl.textContent = result.dogML;\n        favProbEl.textContent = (result.favProb * 100).toFixed(1) + '%';\n        dogProbEl.textContent = (result.dogProb * 100).toFixed(1) + '%';\n    }\n\n    function updateML() {\n        var ml = parseInt(mlEl.value);\n        if (isNaN(ml) || ml === 0) { estSprEl.textContent='-'; return; }\n        var spread = moneylineToSpread(ml);\n        var sign = spread \u003e= 0 ? '+' : '';\n        estSprEl.textContent = sign + spread.toFixed(1);\n    }\n\n    spreadEl.addEventListener('input', updateSpread);\n    mlEl.addEventListener('input', updateML);\n    resetBtn.addEventListener('click', function() {\n        spreadEl.value=''; mlEl.value='';\n        favMlEl.textContent='-'; dogMlEl.textContent='-'; favProbEl.textContent='-'; dogProbEl.textContent='-'; estSprEl.textContent='-';\n    });\n})();\n\u003c/script\u003e","title":"مبدل اسپرد به Moneyline - از امتیاز اسپرد به ML"}]