Стратегия однокоммерческих розничных магазинов V2.0_ годовая 130%

Автор:Количественное распределение районов, Дата: 2019-10-18 18:01:30
Тэги:Решетка

Было подсчитано, что 80% времени, с точки зрения рыночных тенденций, находится в шокирующем тренде. Сетчатая стратегия - это стратегия противодействия шокирующим тенденциям. Сетчатая стратегия может быть реализована различными способами, но в сущности она заключается в установлении относительно стабильной стратегии повышения цены, при условии, что колебания цены удовлетворяют условиям стратегии. Сегодня участковые владельцы представляют количественную стратегию, похожую на сетевую торговлю, но на этой основе, с некоторыми улучшениями, которые в некоторых случаях могут достигать 130% годовых доходов. Они называют ее стратегией малого отделения, то есть представляют себе оператора как оператора малого отделения. Он нацелен на справедливую цену рынка, когда она выше справедливой цены; он выставляет товар, когда он ниже справедливой цены, он покупает товар. Например, в одном из интервью он написал: Первый шаг: наблюдать за колебаниями в товаре, найти справедливый показатель цены, который может быть средней линией (20 циклов 30-минутной линии) или средней линией Брин; купить по умолчанию 5 позиций и записать цену сделки; Шаг 2: указать на покупку, если показатель справедливой цены ниже 3%; указать на продажу, если показатель справедливой цены выше 3%; и записать цену сделки; Если цена сделки ниже 5% от предыдущей цены сделки, указывают на покупку; если цена сделки выше 5% от предыдущей цены сделки, указывают на продажу; и записывают цену сделки; Шаг третий: в зависимости от текущей позиции, принимается решение о том, как действовать при получении указания на покупку; позиции колеблются от 10% до 9%, выше этого диапазона не действует, но может быть зарегистрирована цена сделки; покупается только 2 или 1 позиция в каждой операции, избегая бесконечных операций. Эта стратегия называется однокоммерческой стратегией, потому что в ней есть только один товар. В дальнейшем мы надеемся увеличить количество товарных оборотов, и даже сделать хеджирование на спине. Давайте проведем ретро-тестирование, и сначала мы выберем как товар высоко-волатильный ETH, цикл которого длится с 1 января по 10 октября 2019 года, в этом диапазоне есть взлеты и падения. Как видно, результаты ретроспекции неплохие, достигнутые 130% годовых, а также созданы 1651 долларов США в торговых сборах, что должно быть довольным результатом как для бирж, так и для трейдеров. Недостатком является то, что максимальный отказ может быть немного выше, достигая около 30%; основной отказ отправляется на стадии значительного падения товара. Это также понятно, поскольку эта стратегия предназначена для целенаправленной торговли товарами. После регистрации на сайте http://m.bihu.com/signup?i=1ewtKO&s=4&c=4, поиск блокчейна Интернета вещей позволяет связаться с владельцем автора. Следует также напомнить читателю, что эта стратегия также относится к выбору товара. Старайтесь выбирать товары с большой волатильностью и долгосрочным повышением цены. С другой стороны, если вы используете товар для регулирования параметров, то небольшие волатильности, если они могут покрыть расходы, не должны быть проблемой.


/*backtest
start: 2019-01-01 00:00:00
end: 2019-10-10 00:00:00
period: 1d
exchanges: [{"eid":"OKEX","currency":"ETH_USDT","stocks":0}]
args: [["OpMode",1,10989],["MaxAmount",1,10989],["TradeFee",0.001,10989]]
*/
//注册币乎后https://m.bihu.com/signup?i=1ewtKO&s=4&c=4
//搜索 物联网区块链 可以联系到作者区班主
function main() {
    var isInit = 1; //表示初始态
    var allAmount;
    var cashRatio;
    var initAccount = _C(exchange.GetAccount);
    var lastPrice;
    var wantRatio;
    var wantOper=0;//期待的操作,0不操作,1买入,-1卖出
    Log(initAccount);
    var mhigh;
    var mlow;
    while (true) {
        var mrecords = exchange.GetRecords(PERIOD_M30);
        //一定周期内的高低点
        mhigh=TA.Highest(mrecords, mnum, 'High');
        mlow=TA.Lowest(mrecords, mnum, 'Low');
        
        var midLine = (mhigh+mlow)/2;
        var ticker = _C(exchange.GetTicker);
        var account = _C(exchange.GetAccount);
        var nowPrice=ticker.Sell;
        var obj;
        
        if (isInit == 1) {  //初始化状态为默认仓;     
            //账户现金乘以比例,除以当前价格,保留小数前3位
            obj = $.Buy(_N(account.Balance * initRatio / ticker.Sell, 3));
            if (obj) { //如果购买成功,就标志开仓
                      opAmount = obj.amount;
                      lastPrice = obj.price;
                      isInit=0; //初始化成功
                      account = _C(exchange.GetAccount);
                      Log("初始开仓:购买量", opAmount);
                      Log("目前持币数", account.Stocks);
            }
        }else{ //日常操作检测
            if(nowPrice>midLine*1.03||nowPrice>lastPrice*1.07){
                wantOper=-1;
            }else if(nowPrice<midLine*0.97||nowPrice<lastPrice*0.93){
                wantOper=1;
            }else{
                wantOper=0;
            }
            
            if (wantOper==-1) { //离市平仓
                lastPrice=nowPrice; //不管买没买成功都修改了一下价格
                allAmount=account.Balance+account.Stocks*ticker.Sell; //计算出总金额
                cashRatio=parseFloat((account.Balance/allAmount).toFixed(3));
                
                if(cashRatio>0.9){ //现金比例大于0.9,不做任何操作 
                    wantRatio=0;
                }else if(cashRatio>0.8){ //现金比例超过0.8,可以抛一成仓 
                    wantRatio=0.1;
                }else{ //其他情况都可以抛掉2成仓
                    wantRatio=0.2;
                }
                
                obj = $.Sell(_N(allAmount*wantRatio/ticker.Sell, 3)); 
                if(obj){
                    opAmount = obj.amount;
                    Log("平仓:卖出量",opAmount);
                    nowAccount = _C(exchange.GetAccount);
                    Log("目前现金",nowAccount.Balance,"盈利",allAmount - initAccount.Balance);
                }
            }else if (wantOper==1) { //开仓买入
                lastPrice=nowPrice; //不管买没买成功都修改了一下价格
                allAmount=account.Balance+account.Stocks*ticker.Sell; //计算出总金额
                cashRatio=parseFloat((account.Balance/allAmount).toFixed(3));
                //Log("准备买入",cashRatio);
                if(cashRatio<0.1){ //现金比例小于0.1,已没钱买了
                    wantRatio=0;
                }else if(cashRatio<0.2){ //现金比例超过0.2,可以买一成仓 
                    wantRatio=0.1;
                }else{ //其他情况都可以买2成仓
                    wantRatio=0.2;
                }
                
                obj = $.Buy(_N(allAmount*wantRatio/ticker.Sell, 3)); 
                if(obj){
                    opAmount = obj.amount;
                    Log("买入:买入量",opAmount);
                    nowAccount = _C(exchange.GetAccount);
                    Log("目前现金",nowAccount.Balance,"盈利",allAmount - initAccount.Balance);
                }
            }
        }
        Sleep(Interval*1000);
    }
}

Связанные

Больше

Кэнгкс1987Как насчет повторного тестирования?