1

私は半分完璧に動作するコードを持っていますが、フィールドを更新していません: 3R Profit Formula:、Target Selling Price:、Total Target Profit:、Target Gain:、実際にはフィールドを更新していますが、それでも TAB ボタンを使用する必要があります。変更を入力する前に特定のフィールドに移動しますが、関連するフィールドを変更するとすぐに自動的に更新されるようにしたい...

3R Profit Formula:、Target Selling Price:、Total Target Profit:、Target Gain: のフィールドを自動的に更新することになっていますが、機能していないようです... 3R Profit Formula フィールドでの作業を停止したので、私はこれ以上続けられない...

これが私が使用している数式です。今は 1 つのフィールドに焦点を当てましょう: 3R 利​​益の数式

まず、見つける必要があります

リスク/リワード ファクター = リスク量 / シェア

3R 利益計算式 = 3 * リスク/報酬係数

だから私が望むのは、Risk Amount または Shares フィールドの値を変更するたびに、変更が 3R Profit Formula フィールドに自動的に反映されることです。

私は以下のコードを持っています、

<table width="634" height="224" border="0" align="center" cellpadding="1" cellspacing="1">

  <tr>
    <td width="135">Risk Amount:</td>
    <td width="81"><input type="text" name="risk" id="risk" size="8"/></td>
    <td colspan="2">How much you can afford to lose?</td>
  </tr>
  <tr>
    <td>No. of Shares:</td>
    <td><input type="text" name="shares" id="shares" size="8"/></td>
    <td colspan="2">Number of  shares bought</td>
  </tr>
  <tr>
    <td>Risk/Reward Factor:</td>
    <td><input type="text" name="factor" id="factor" size="8" readonly="readonly" /></td>
    <td colspan="2"><strong>R</strong> = Risk Amount / No. of Shares</td>
  </tr>
  <tr>
    <td>3R Profit Formula:</td>
    <td><input type="text" name="3r" id="3r" size="8" readonly="readonly" /></td>
    <td colspan="2">3R formula  to get target selling price</td>
  </tr>
  </table>

これは私の Java スクリプト コードです。Cut Loss: フィールドまでしか機能していないようでした。

更新された Java スクリプト コード

// Risk/Reward Factor
$(function () {
    $("#risk, #shares").keyup(function () {
        var r = parseFloat($("#risk").val());
        var s = parseFloat($("#shares").val());
        if (isNaN(r) || isNaN(s) || s<=0) {
            $("#factor,#3r").val('');
            return false;
        }
        $("#factor").val((r / s).toFixed(3)); // Risk/Reward Factor
        $("#3r").val((r / s * 3).toFixed(3)); // 3R Profit Formula
    });
});

// Capital
$(function() {
    $("#buy, #shares").keyup(function() {
        var b2 = parseFloat($("#buy").val(), 10);
        var s2 = parseFloat($("#shares").val(), 10);
        if (isNaN(b2) || isNaN(s2)) {
        $("#capital").val('');
        return false;
        }
        $("#capital").val(b2 * s2);
        updatecapital();
    });
});

// Cut Loss
$(function() {
    $("#buy, #risk, #shares").keyup(function() {
        var b = parseFloat($("#buy").val(), 10);
        var i = parseFloat($("#risk").val(), 10);
        var h = parseFloat($("#shares").val(), 10);
        if (isNaN(b) || isNaN(i) || isNaN(h)) {
        $("#cutloss").val('');
        return false;
        }
        $("#cutloss").val(b - i / h);
    });
});

function updatecutloss() {
        var v1 = parseFloat($("#risk").val(), 10);
        var v2 = parseFloat($("#shares").val(), 10);
        var v3 = parseFloat($("#buy").val(), 10);
        if (isNaN(v1) || isNaN(v2) || isNaN(v3)) {
        $("#cutloss").val('');
        return false;
        }
        $("#cutloss").val(v3 - v1 / v2);
    };

function updatecapital() {
        var x1 = parseFloat($("#shares").val(), 10);
        var x2 = parseFloat($("#buy").val(), 10);
        if (isNaN(x1) || isNaN(x2)) {
        $("#capital").val('');
        return false;
        }
        $("#capital").val(x1 * x2);
    };

$(function() {
    $("#buy, #factor").keyup(function() {
        var bu = parseFloat($("#buy").val(), 10);
        var fa = parseFloat($("#factor").val(), 10);
        if (isNaN(bu) || isNaN(fa)) {
        $("#targetprice").val('');
        $("#targetprice").change();
        return false;
        }
        $("#targetprice").val(bu + (3 * fa));
        $("#targetprice").change();
     });
});

$(function () {
    $("#risk, #shares, #bp").keyup(function () {
        var r = parseFloat($("#risk").val());
        var s = parseFloat($("#shares").val());
        var bp = parseFloat($("#bp").val()); // buy price
        if (isNaN(r) || isNaN(s) || s <= 0) {
            $("#factor,#3r,#capital,#targetprice,#totprofit,#gain").val('');
            return false;
        }
        $("#factor").val((r / s).toFixed(3)); // Risk/Reward Factor
        $("#3r").val((r / s * 3).toFixed(3)); // 3R Profit Formula
        if (isNaN(bp)) {
            $("#bp").val('');
            return false;
        }
        $("#capital").val((bp*s).toFixed(3));
        var targetprice = bp + (r/s*3);
        $('#targetprice').val(targetprice.toFixed(3));
        $('#totprofit').val((s*targetprice).toFixed(3));
        $('#gain').val((bp*s).toFixed(3));
    });

    $("#bp").keyup(function () {
        var r = parseFloat($("#risk").val());
        var s = parseFloat($("#shares").val());
        if (isNaN(r) || isNaN(s) || s <= 0) {
            $("#factor,#3r").val('');
            return false;
        }
        $("#factor").val((r / s).toFixed(3)); // Risk/Reward Factor
        $("#3r").val((r / s * 3).toFixed(3)); // 3R Profit Formula
    });

});
4

2 に答える 2

0

すべてを 1 か所に:

$(function () {
    $("#risk, #shares").keyup(function () {
        var r = parseFloat($("#risk").val());
        var s = parseFloat($("#shares").val());
        if (isNaN(r) || isNaN(s) || s<=0) {
            $("#factor,#3r").val('');
            return false;
        }
        $("#factor").val((r / s).toFixed(3));
        $("#3r").val((r / s * 3).toFixed(3)); // 3R Profit Formula
    });
});

http://jsfiddle.net/g76eS/1/

于 2013-07-27T18:15:18.390 に答える