Плагин для закрытия фьючерсов в один клик


Дата создания: 2020-03-18 17:04:51 Последнее изменение: 2020-04-02 09:40:01
Копировать: 64 Количество просмотров: 2517
3
Подписаться
1444
Подписчики

Все фьючерсные позиции по сделке. Способ выравнивания позиции: например, уже выравниваемые позиции постоянно подвешиваются, а затем продаются, а после 0,5 с отменены, и продолжают подвешивать и продавать, зная, что позиция полностью выравнивается. Каждая единица подвешивания составляет все текущие позиции, которые могут быть выравниты.

Плагин может быть запущен одним нажатием на торговом терминале, без взимания платы, чтобы упростить ручную торговлю. Подробнее: https://www.fmz.com/digest-topic/5051

Исходный код стратегии

function main(){
    while(ture){
        var pos = exchange.GetPosition()
        var ticker = exchange.GetTicekr()
        if(!ticker){return '无法获取ticker'}
        if(!pos || pos.length == 0 ){return '已无持仓'}
        for(var i=0;i<pos.length;i++){
            if(pos[i].Type == PD_LONG){
                exchange.SetContractType(pos[i].ContractType)
                exchange.SetDirection('closebuy')
                exchange.Sell(ticker.Buy, pos[i].Amount - pos[i].FrozenAmount)
            }
            if(pos[i].Type == PD_SHORT){
                exchange.SetContractType(pos[i].ContractType)
                exchange.SetDirection('closesell')
                exchange.Buy(ticker.Sell, pos[i].Amount - pos[i].FrozenAmount)
            }
        }
        var orders = exchange.Getorders()
        Sleep(500)
        for(var j=0;j<orders.length;j++){
            if(orders[i].Status == ORDER_STATE_PENDING){
                exchange.CancelOrder(orders[i].Id)
            }
        }
    }
}