Skip to content

Buy contract is not updating  #135

@bidreshivaprasad

Description

@bidreshivaprasad

As you can see below @ buy_contract_request ----> " amount ": lot, this is not updating in loop
As you can see below on the 8th line ---> let lot = 0.35; this value changes on every loop
When I run this code it should increase the amount on every loop eg:- amount : 0.35 , amount : 0.77 ,amount: 1.5
But it's not increasing the amount in loop, It just taking trade like , amount : 0.35, amount : 0.35,amount : 0.35

const WebSocket = require('ws');
const DerivAPIBasic = require('@deriv/deriv-api/dist/DerivAPIBasic');
const app_id = 1089; // Replace with your app_id or leave as 1089 for testing.
const connection = new WebSocket(wss://ws.binaryws.com/websockets/v3?app_id=${app_id});
const api = new DerivAPIBasic({ connection });
const token = 'xxxxxxxxxxx';// ----->API token

let trade_status = 0;

let lot = 0.35;

const buy_contract_request = { "buy": 1, "subscribe": 1, "price": 1000, "parameters": { "amount": lot, // this is not updating "duration": 1, "basis": "stake", "symbol": "R_10", "currency": "USD", "duration_unit": "t", "contract_type": "CALL" } }

const buyContractResponse = async (res) => {
const data = JSON.parse(res.data);
const is_sold = data.proposal_open_contract?.is_sold;

if (data.error !== undefined) {
    console.log('Error : %o', data.error.message);
    connection.removeEventListener('message', buyContractResponse, false);
    //await api.disconnect();
}

if (data.msg_type === 'buy') {
    console.log(`Contract Id ${data.buy.contract_id} \n`);
    console.log(`Details ${data.buy.longcode} \n`);
}

if (data.msg_type === 'proposal_open_contract') {
    // If `is_sold` is true it means our contract has finished and we can see if we won or not.
    if (is_sold) {
        const contract_status = data.proposal_open_contract.status;
        const contract_profit = data.proposal_open_contract.profit;
        console.log(`Profit ${contract_profit} \n`);
        console.log(`Contract ${contract_status} \n`);
        connection.removeEventListener('message', buyContractResponse, false);
        //await api.disconnect();
        trade_status = 0;
        get_all = lot * 2.5 ;
        lot = get_all.toFixed(2);
        console.log(lot)
    } else {
        // We can track the status of our contract as updates to the spot price occur.
        let entry_spot = 0; 
        const entry_tick = data.proposal_open_contract.entry_tick;
        const current_spot = data.proposal_open_contract.current_spot;
        if (typeof (entry_tick) !== 'undefined') entry_spot = entry_tick;
        //console.log(`Entry spot ${entry_spot} \n`);
       // console.log(`Current spot ${current_spot} \n`);
        //console.log(`Difference ${current_spot - entry_spot} \n`);
    }
}

}

const buyContract = async () => {
await api.authorize(token);
await api.buy(buy_contract_request);
connection.addEventListener('message', buyContractResponse);

}

setInterval(function () {
if (trade_status === 0){

buyContract();
trade_status = 1;

}}, 1);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions