単品小売り戦略V2.0_年化130%

作者: リン・ハーン区分量化開催日:2019年10月18日 (月) 18:01:30
タグ:格子

格子戦略は,具体的には様々な方法で実現されるが,本質的には比較的安定した増強戦略を設定し,価格変動が戦略の条件を満たす限り増強を行う.例として,価格が5%下落するたびに,総投資資金の20%を増やすようにする.ここでは,5%上昇するたびに初期投資資金の20%を減らしたり,5回後に清算する.これは格子戦略の基本的な考えである. 区分局長は今日,格子取引に似た量化戦略を導入したが,その基礎に,いくつかの改良を加え,ある場合,130%の年収に達する.区分局長はこれを小売り局戦略と名付け,操作者が小売り局の経営者であると想像する.彼は市場を1つの公正な価格で標的にし,公正な価格よりも高くなる.彼は商品を放出し,公正な価格よりも低くなる,彼は商品を購入する.また,彼は最後の取引価格を記録する小冊子を持っていて,商品の価格が前回の取引価格よりも低い場合,彼は急激に購入することもできます.また,逆もできます.無限操作を避けるために,資金が1以下または1以上になると,操作は停止します. 具体的には,次のステップについて説明します. ステップ1:商品の波動率を見て,平均線 (30分線20サイクル) またはブリーンの中間線のような公正な価格指標を見つけ,デフォルトで5つのポジションを購入し,取引価格を記録します. ステップ2: 公正価格指数の3%以下であれば購入指示; 公正価格指数の3%以上であれば売却指示; 取引価格を記録する. 前回の取引価格の5%未満の場合,購入を指示し,取引価格の5%以上の場合,売却を指示し,取引価格を記録する. ステップ3:現在のポジションに基づいて,購入指示を受け取ったときにどのように操作するか決定する.ポジションは10%から9%の間波動し,この範囲を超えると操作されませんが,取引価格を記録できます.各操作で2つのポジションまたは1つのポジションのみを購入し,無限操作を避けます. この戦略は"単品小売り"と呼ばれるのは,小売りには"つの商品があるからです. 改善の方向として,私たちは複数の商品の回転を増やしたり,背後に空白をカバーしたりすることを望んでいます. 波動性の高いETHを商品として選択し, 2019年1月1日から10月10日の周期で,この区間には浮気と暴落がある. 取引先やトレーダーが喜ぶ戦略であるべき結果である. 取引先やトレーダーが喜ぶ戦略であるべき結果である. 取引先やトレーダーが喜ぶ戦略である. 弊害は最大回撤がわずかに高く,約30%に達する. 主要な回撤は商品が大幅に下落する段階で送られる. 考えるのも理解できます. この戦略は,商品の取引を固定しているため,商品の価格が下落した場合,高水準でいくつかの商品を売り込み,まだ市場にリリースできず,時間が長くなるにつれて,補充できることが理解できます. 登録後,https://m.bihu.com/signup?i=1ewtKO&s=4&c=4,IoTブロックチェーンで検索すると,作者の区画の管理者に連絡できます. また,この戦略は商品選択にも関するものであることも読者の注意を促す必要がある. 波動が大きく,長期的に見れば値上がりする商品を選びなさい. 別の観点から,あなたが商品を組み合わせてパラメータを調整する場合は,手続費をカバーできる限り,小さい波動も問題ではないはずです.


/*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テストはどうでしょう?