سیڑھیوں کے نیچے کی فہرست - ٹرگر کی قیمت مقرر کریں

مصنف:صفر، تاریخ: 2014-09-24 23:57:05
ٹیگز:تجارتی امداد

سیڑھیوں کے نیچے آرڈر ، خریدنے کے لئے دستیاب ، پروگرام ترتیب میں کلک کرنے کے لئے ایک وقفے کے ساتھ خریداری یا فروخت کے احکامات کی تعداد کی وضاحت کر سکتے ہیں ، اگر خریداری ہے تو ، صرف سب سے پہلے واحد سب سے زیادہ قیمت والے احکامات ہیں ، اگلی واحد ترتیب میں قیمت کم ہوتی ہے ، فروخت کی پہلی سب سے سستی فروخت کے احکامات ہیں ، اگلی قیمت میں اضافہ ہوتا ہے۔


function adjustFloat(v) {
    return Math.floor(parseFloat(v.toFixed(10))*1000)/1000;
}

function GetAccount(e) {
    var account;
    while (!(account = exchange.GetAccount())) {
        Sleep(Interval);
    }
    return account;
}

function GetTicker() {
    var ticker;
    while (!(ticker = exchange.GetTicker())) {
        Sleep(1000);
    }
    return ticker;
}

function main() {
    var ticker = GetTicker();
    var InitPrice = ticker.Last;
    if (EnableTrigger) {
        Log('当前价格: ', InitPrice, InitPrice > TriggerPrice ? '价格跌破' : '价格涨超', TriggerPrice, '时触发阶梯下单');
        while (true) {
            if (InitPrice > TriggerPrice && ticker.Last < TriggerPrice) {
                Log('当前价格', ticker.Last, '价格跌破 ', TriggerPrice, '元, 开始下单');
                break;
            } else if (InitPrice < TriggerPrice && ticker.Last > TriggerPrice) {
                Log('当前价格', ticker.Last, '价格涨超 ', TriggerPrice, '元, 开始下单');
                break;
            }
            ticker = GetTicker();
            Sleep(1000);
        }
    }
    var account = GetAccount();
    var needMoney = 0;
    var needStocks = 0;
    for (var i = 0; i < OrderNum; i++) {
        needMoney += (StartPrice - (i * PriceDiff)) * Amount;
        needStocks += Amount;
    }

    if (OpType == 0) {
        if (needMoney > account.Balance) {
            throw "没有足够的钱下单";
        }
        for (var i = 0; i < OrderNum; i++) {
            exchange.Buy(adjustFloat(StartPrice - (i * PriceDiff)), Amount);
        }
    } else {
        if (needStocks > account.Stocks) {
            throw "没有足够的币下单";
        }
        for (var i = 0; i < OrderNum; i++) {
            exchange.Sell(adjustFloat(StartPrice + (i * PriceDiff)), Amount);
        }        
    }
    Log("全部委托完成");
}

متعلقہ

مزید