В процессе загрузки ресурсов... загрузка...

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

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

Было подсчитано, что 80% времени, с точки зрения рыночных тенденций, находится в шокирующем тренде. Сетчатая стратегия - это стратегия реагирования на шокирующие тенденции. Сетчатая стратегия может быть реализована различными способами, но в сущности она заключается в установлении относительно стабильной стратегии повышения цены, при условии, что колебания цены удовлетворяют условиям стратегии. Сегодня участковые владельцы представляют себе количественную стратегию, похожую на сетевую торговлю, но на этой основе делают некоторые улучшения, в некоторых случаях достигающие 130% годовых доходов. Они называют ее стратегией малого магазина, то есть представляют себе оператора как оператора малого магазина. Он нацелен на справедливую цену рынка, когда она выше справедливой цены; он выставляет товар, когда он ниже справедливой цены, и покупает товар. Посмотрите, как это делается: Первый шаг: наблюдать за колебаниями товара, найти справедливый ценовой показатель, который может быть средней линией (двадцать циклов 30-минутной линии) или средней линией Брин; купить по умолчанию пять позиций и записать цену сделки; Шаг 2: указать на покупку, если показатель справедливой цены ниже 3%; указать на продажу, если показатель справедливой цены выше 3%; и зафиксировать цену сделки; Если цена сделки ниже 5% от предыдущей цены сделки, указывают на покупку; если цена сделки выше 5% от предыдущей цены сделки, указывают на продажу; и записывают цену сделки; Шаг третий: в зависимости от текущей позиции, принимается решение о том, как действовать при получении указания на покупку; позиции колеблются от 10% до 9%, не выходя за этот диапазон, но можно записывать цену сделки; покупают только 2 или 1 позицию на одну операцию, избегая бесконечных операций. Эта стратегия называется однокоммерческой стратегией, потому что в ней есть только один товар. В дальнейшем мы надеемся увеличить количество товарных оборотов, и даже сделать хеджирование на спине. Давайте проведем ретро-тестирование, и сначала мы выберем высоковолатильный ETH в качестве товара, цикл которого длится с 1 января по 10 октября 2019 года, в этом диапазоне есть взлеты и падения. Как видно, результаты ретроспекции неплохие, достигнутые 130% годовых, а также созданы 1651 долларов США в качестве сборов за транзакции, что должно быть довольным результатом как для бирж, так и для трейдеров. Недостатком является то, что максимальное отзыв может быть немного выше, достигая около 30%; основное отзыв отправляется на стадии значительного падения товара. Это также понятно, поскольку эта стратегия предназначена для целенаправленной торговли товарами. После регистрацииhttps://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Как насчет повторного тестирования?