Il a été estimé que 80% du temps, en termes de tendance du marché, est dans une tendance à la volatilité. La stratégie de filet est une stratégie de réponse à la volatilité. La stratégie de filet est concrètement mise en œuvre de plusieurs manières, mais l'essence est de définir une stratégie de hachage relativement stable, à condition que les fluctuations de prix satisfont aux conditions de la stratégie. Aujourd'hui, le zone-maître introduit une stratégie de quantification, similaire à la négociation en grille, mais sur cette base, il a fait quelques améliorations, et dans certains cas, il peut atteindre 130% de rendement annuel. Le zone-maître l'appelle la stratégie de petite vente, c'est-à-dire imaginer que l'opérateur est l'opérateur d'une petite vente. Il vise un juste prix sur le marché, une fois que le juste prix est supérieur au juste prix. Il y a des gens qui ont été victimes d'une agression. Première étape: observer la volatilité du produit, trouver un indicateur de prix juste, qui peut être une ligne moyenne (une ligne de 30 minutes avec 20 cycles) ou une ligne moyenne de Browning; acheter 5 positions par défaut et enregistrer le prix de la transaction; Deuxième étape: acheter si le prix est inférieur à 3% de l'indicateur de prix équitable; vendre si le prix est supérieur à 3% du prix équitable; et enregistrer le prix de transaction; Si le prix de la transaction est inférieur à 5% du prix de la transaction précédente, l'achat est redirigé; si le prix de la transaction est supérieur à 5%, la vente est redirigée; et le prix de la transaction est enregistré; Troisième étape: en fonction de la position actuelle, décider comment opérer lors de la réception de l'ordre d'achat; les positions fluctuent entre 10% et 9% et ne fonctionnent pas au-delà de cette fourchette, mais le prix de transaction peut être enregistré; chaque opération ne prend que 2 positions ou 1 position, évitant des opérations illimitées. C'est pourquoi cette stratégie s'appelle la stratégie de la petite boutique de produits uniques, car la petite boutique ne possède qu'un seul produit. Nous allons faire un test de retour, et nous choisissons d'abord l'ETH, qui a une grande volatilité, comme produit, et le cycle est du 1er janvier au 10 octobre 2019, une période où il y a des hausses et des baisses. Comme vous pouvez le voir, le retrait a eu un bon effet, atteignant un taux d'annualité de 130% et créant des frais de transaction de 1651 dollars, ce qui devrait être une stratégie appréciée par les bourses et les traders. L'inconvénient est que le retrait maximal est un peu élevé, atteignant environ 30%. Le principal retrait est envoyé à un stade de forte baisse des marchandises. Il est également compréhensible de penser que cette stratégie est destinée aux marchandises de négociation, si le prix des marchandises baisse, il est possible que certaines marchandises soient stockées à des niveaux élevés et n'aient pas encore été libérées sur le marché. Après l'enregistrement, vous pouvez contacter le responsable de l'auteur sur http://m.bihu.com/signup?i=1ewtKO&s=4&c=4. Il est également important de rappeler au lecteur que cette stratégie est également liée au choix des produits. Essayez de choisir des produits à forte volatilité et à forte valeur ajoutée sur le long terme. D'un autre côté, si vous combinez des produits pour régler les paramètres, des fluctuations plus faibles ne devraient pas être un problème, tant que les frais de traitement peuvent être couverts.
/*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); } }
- Je ne sais pas.Comment ça, le test?