bybit swap chiến lược tiếp tục tăng giá

Tác giả:gulishiduan_ xếp hạng tần số cao, Ngày: 2020-05-07 22:20:01
Tags:

// Gần đây có một người bạn phản ứng có một lỗi nhỏ, trước tiên kiểm tra lưới. Các tham số có thể được điều chỉnh tự do theo nhu cầu. Bản chất của chiến lược là theo dõi giá khấu trừ của đường k để xác định nhiều không gian, đơn giản là thông qua sự xoay của đường trung bình, phát hiện tín hiệu trong thời gian thực. // đăng ký tài khoản mới, vui lòng sử dụng liên kết đăng ký của tôi:https://www.bytick.com/zh-CN/register/?affiliate_id=7586&language=en&group_id=0&group_type=2// Liên kết này cung cấp nhiều chiến lược liên kết ba bên.// // Nguyên tắc cơ bản: nếu đường k tiếp tục đi lên, thì tiếp tục tăng giá cho đến khi có giá trị lớn nhất.//

// Long: Không phù hợp với thị trường không đầu tư, nhưng sẽ không tiếp tục tăng nhiều vị trí trong thời gian giảm.// // nếu ngắn: không phù hợp với thị trường đa đầu, nhưng không tăng giá liên tục khi tăng giá.

// Lưu ý, bạn có thể mở cùng một tài khoản với nhiều không gian.

// Các chiến lược khác để mua: weixin:ying5737 // Cần tự ghép giao dịch./ Kiểm tra trước tài khoản giả.

// cấp độ đường tròn, hoặc cấp độ đường tròn, chúng ta dùng đường tròn làm ví dụ, // Kiểm tra ma5ma10, giá khép k trên ma5, ma10 và ma5 tăng (định giá khép k hôm qua > giá khép k đầu số 5 trước đó), sau đó mở hàng hang hàng hoặc mua trực tiếp 500u mỗi ngày, tiếp tục tăng, tiếp tục tăng giá. // Cổ phiếu, nếu có hai chuỗi âm xuất hiện trong đường dẫn lên, sau đó mua 500u vào ngày thứ ba. Mỗi hai chuỗi âm được thống kê riêng lẻ.

// Bán, k dây ba dây giảm cổ phần 1000u.;; ((hoặc k dây bốn dây giảm cổ phần 2000u) // liên tục xoay vòng. // Chiến lược chạy, 13 ngày ((hoặc 21 ngày), tự động dừng, thanh toán hoặc thanh toán các vị trí và đơn đặt hàng. // Tối đa giữ 5000u lớn hơn vị trí đó chỉ giảm vị trí.

Hình trên:

https://wx1.sinaimg.cn/mw1024/c5775633ly1gbsjvtrgnhj20m80dmmxy.jpg https://wx1.sinaimg.cn/mw1024/c5775633ly1gbsjvty48uj21hc0u077o.jpg https://wx2.sinaimg.cn/mw1024/c5775633ly1gbsjvu4iipj20lr0h775f.jpg

Chiến lược xu hướng một chiều

Các biến số theo dõi

  1. MA nhanh
  2. Slow MA
  3. Giá đóng cửa

Các tham số cấu hình

  1. Số lượng đơn đặt hàngAmount
  2. Tỷ lệ giảm một lần CloseAmount
  3. Số lượng lớn nhất MaxPosition

Làm nhiều hơn

Yêu cầu

  1. Giá đóng cửa đường k lớn hơn MA nhanh và MA chậm
  2. và nhanh chóng MA lên (đánh giá giá đóng cửa k ngày hôm qua lớn hơn giá đóng cửa k số 5 trước đó)

Dưới đây

  1. Tri Linh Dương, giảm giá CloseAmount
  2. Hai chuỗi âm, thêm vào Amount.
  3. Thông thường, mở tài khoảnAmount

Hạn chế

  1. Số lượng nắm giữ tối đa lớn hơn MaxPosition sẽ không được đặt hàng

Ra đi

  1. Rút ra sau khi chạy đường N root K

Làm trống

Yêu cầu

  1. Giá đóng cửa đường k thấp hơn MA nhanh và MA chậm
  2. và MA nhanh lên (đánh giá giá đóng cửa k ngày hôm qua nhỏ hơn số N trước đó)

Dưới đây

  1. Tứ Liên Nguyên, giảm giá CloseAmount
  2. Hai chuỗi âm, tăng thêm AMount.
  3. Thông thường, mở tài khoảnAmount

Hạn chế

  1. Số lượng nắm giữ tối đa lớn hơn MaxPosition sẽ không được đặt hàng

Ra đi

  1. Rút ra sau khi chạy đường N root K

Lưu ý

  1. Chương trình sẽ truy cập thông tin lưu trữ của tài khoản mỗi lần như là chiến lược lưu trữ
  2. Xin liên kết FMZ WeChat, chương trình sẽ đẩy WeChat đến những nơi quan trọng

Các tham số

  1. Chu kỳ MA nhanh
  2. Chu kỳ MA chậm
  3. Khoảng thời gian thăm dò (ms)
  4. Nhiều lựa chọn
  5. Kích thước đòn bẩy: 0 cho thấy chế độ toàn bộ
  6. Loại hợp đồng: hiện tại fmex chỉ hỗ trợ swap, chỉ có thể điền swap.
  7. Tỷ lệ giảm giá một lần. Khi điều kiện giảm giá đạt được, giảm giá một lần
  8. Số lượng lớn nhất (u)
  9. Địa chỉ cơ sở API; có thể được thiết lập là https://api.fmex.com, hoặc https://api.testnet.fmex.com
  10. Lưu ý rằng bạn có thể sử dụng các công cụ khác nhau để thực hiện các chiến lược khác nhau.
  11. Trong khi đó, các nhà đầu tư khác cũng cho biết họ sẽ không tham gia vào chiến dịch này.
  12. Liệu có cần tương tác không. Chính sách sẽ thoát khi hoàn thành điều kiện thoát. Nếu cần tương tác, sẽ chờ lệnh can thiệp tự động. Nếu không, chương trình sẽ thoát ngay lập tức.
  13. Có phải là mua hàng. Chọn, thì đặt hàng là giá thị trường, không chọn, thì đặt hàng, mua hàng treo trên mua một, bán hàng treo trên bán một.
  14. Số dòng K liên tục dương ((阴));; tín hiệu giảm giá, chẳng hạn như làm nhiều, liên tục dương, giảm giá
  15. Số dây K liên tục (nhiều lần làm, dây liên tục). Số dây K liên tục (nhiều lần làm, dây liên tục)
  16. Có phải là một thị trường sốc.

Sự tương tác

Chúng ta chỉ có thể tương tác是否需要交互Có hiệu lực Sự tương tác được thực hiện khi chiến lược thoát khỏi tình trạng bình thường.

  1. Tiếp tục. Tiếp tục là đặt lại chính sách, chạy lại cùng một tham số
  2. Đặt lệnh dừng.
  3. Chuyển đổi thị trường để tiếp tục hoạt động sau khi sụp đổ hoặc xu hướng, là một sự mở rộng của tương tác tiếp tục tăng


/*联系微信:ying5737(策略讨论,支持付费编写)
# 中频单边趋势策略
## 监测变量
1. 快MA
2. 慢MA
3. 收盘价
## 配置参数
1. 单次下单量Amount
2. 单次减仓量CloseAmount
3. 最大持仓量MaxPosition
## 做多
### 必要条件
1. k线收盘价大于快MA与慢MA
2. 且快MA上行(判断为昨日k线收盘价大于往前数第5根k收盘价)
### 下单
1. 三连阳,减仓CloseAmount
2. 两连阴,加仓Amount。也就是出现两连阴会下单2*Amount
3. 正常情况,开单Amount
### 限制
1. 最大持仓量大于MaxPosition则不开单
### 退出
1. 运行N根K线之后退出

## 做空
### 必要条件
1. k线收盘价小于快MA与慢MA
2. 且快MA下行(判断为昨日k线收盘价小于往前数第N(快MA5周期)根k收盘价)
### 下单
1. 三连阴,减仓CloseAmount
2. 两连阳,加仓Amount。也就是出现两连阴会下单2*Amount
3. 正常情况,开单Amount
### 限制
1. 最大持仓量大于MaxPosition则不开单
### 退出
1. 运行N根K线之后退出
## 注意事项
1. 程序会每次会获取账户的持仓信息做为策略的持仓量
2. 请绑定fmz微信,程序会重要的地方推送微信
## 参数
1. 快MA周期
2. 慢MA周期	
3. 轮询间隔(ms)	
4. 多空选择
5. 杠杆大小: 0表示全仓模式
6. 合约类型: 目前fmex只支持swap,只能填写swap。回测时可用OKEx回测,此处可设置为this_week, this_month等
7. 单次减仓量。达到减仓条件时,一次减仓量
8. 最大持仓(u)
9. API基地址。可设置为https://api.fmex.com,或测试网https://api.testnet.fmex.com
10. 策略K数退出. 策略运行多少个K线后正常退出
11. 策略主动退出时是否清仓。
12. 是否需要交互。策略在满足退出条件后,正常退出时。如果需要交互,则会等待人工干预等命令。如果不需要,则程序直接退出了
13. 是否吃单。勾选,则下单是市价单,不勾选,则是挂单,买单挂在买一,卖单挂在卖一
14. 连续阳(阴)K线数(做多时,连续阳线)。减仓信号,如做多时,连续阳线,减仓
15. 连续阴(阳)K线数(做多时,连续阴线)。连续阴(阳)K线数(做多时,连续阴线)	
16. 是否是震荡行情。勾选是震荡行情
## 交互
**交互只有在`是否需要交互`时有效**
**交互是在策略正常退出时进行交互**
1. 继续。继续是策略复位,重新运行相同的参数
2. 停止。策略停止退出
3. 切换策略行情后继续.切换行情为震荡或趋势后继续运行,是交互1'继续'的一种扩展
*/
////////////////// params ////////////////////////
//var fastMaPeriod = 5
//var slowMaPeriod = 10
//var direction = 做多|做空
//var interval = 1000
//var amount = 500
//var maxHoldAmount = 5000
//var closeAmount = 1000
//var runNBars = 13
//var marginLevel = 0
//var contractType = 'swap'
//var enableCommand = false
//var isTaker = true
//var maxOppositeDirKNum = 2
//var maxSameDirKNum = 3
//var isShock = false
////////////////// variable ////////////////////////

var makeLong = direction == 0 ? true:false
var startTime = null
var holdAmount = 0
var lastBar = null
var yinxianCnt = 0
var yangxianCnt = 0
var lastClose = 0
var last5thClose = 0
var fastMa = []
var slowMa = []
var barCnt = 0
var localIsShock = false
////////////////////////////////////////////////
var PreBarTime = 0
var isFirst = true

function PlotMA_Kline(records){
    $.PlotRecords(records, 'K')
    if(fastMa.length == 0) {
        fastMa = TA.MA(records, fastMaPeriod)
    }
    if(slowMa.length == 0) {
        slowMa = TA.MA(records, slowMaPeriod)
    }
    if(isFirst){
        $.PlotFlag(records[records.length - 1].Time, 'Start', 'STR')
        for(var i = records.length - 1; i >= 0; i--){
            if(fastMa[i] !== null){
                $.PlotLine('ma'+fastMaPeriod, fastMa[i], records[i].Time)
            }
            if(slowMa[i] !== null){
                $.PlotLine('ma'+slowMaPeriod, slowMa[i], records[i].Time)
            }
        }
        PreBarTime = records[records.length - 1].Time
        isFirst = false
    } else {
        if(PreBarTime !== records[records.length - 1].Time){
            $.PlotLine('ma'+fastMaPeriod, fastMa[fastMa.length - 2], records[fastMa.length - 2].Time)
            $.PlotLine('ma'+slowMaPeriod, slowMa[slowMa.length - 2], records[slowMa.length - 2].Time)
            PreBarTime = records[records.length - 1].Time
        }
        $.PlotLine('ma'+fastMaPeriod, fastMa[fastMa.length - 1], records[fastMa.length - 1].Time)
        $.PlotLine('ma'+slowMaPeriod, slowMa[slowMa.length - 1], records[slowMa.length - 1].Time)
}
}

function init () {
    if (fastMaPeriod > slowMaPeriod) {
        throw '快MA周期 > 慢MA周期, 请检查设置'
    }
    Log('快MA周期	    :'  + fastMaPeriod)
    Log('慢MA周期	    :' + slowMaPeriod)
    Log('轮询间隔(ms)   :' + interval)
    Log('是否是震荡策略  :' + (isShock?'是':'否'))
    Log('多空选择	    :' + (direction == 0 ? '多':'空'))
    Log('杠杆大小	    :' + (marginLevel == 0 ? '全仓':marginLevel))
    Log('连续阳(阴)K线数(做多时,连续阳线)数   :' + maxSameDirKNum)
    Log('连续阴(阳)K线数(做多时,连续阴线)   :' + maxOppositeDirKNum)
    Log('运行多少根K后退出   :' + runNBars)
    startTime = new Date()
    localIsShock = isShock
}

function onexit() {
    Log('退出')
}

function onerror() {
    Log('出错退出')
}

function openLong(ex, openAmount) {
    if (holdAmount + openAmount <= maxHoldAmount) {
        Log('已持仓: ' + holdAmount + ', 加仓:' + openAmount)
        ex.SetDirection('buy')
        if(isTaker) {
            ex.Buy(-1, openAmount, '吃单')
            holdAmount += openAmount
        } else {
            var ticker = _C(ex.GetTicker)
            if(ticker == null) {
                return false
            }
            ex.Buy(ticker.Buy, openAmount, '挂单')
        }
        return true
    } else {
        Log('持仓('+holdAmount+') 过多,不加仓')
        return false
    }
}

function closeLong(ex, closeAmount) {
    if (holdAmount >= closeAmount) {
        Log('已持仓: ' + holdAmount + ', 减仓:' + closeAmount)
        ex.SetDirection('closebuy')
        ex.Sell(-1, closeAmount)
        holdAmount -= closeAmount
        return true
    } else {
        Log('持仓('+holdAmount+') 过少,不减仓')
        return false
    }
}

function openShort(ex, openAmount) {
    if (holdAmount + openAmount <= maxHoldAmount) {
        Log('已持仓: ' + holdAmount + ', 加仓:' + openAmount)
        ex.SetDirection('sell')
        if(isTaker) {
            ex.Sell(-1, openAmount, '吃单')
            holdAmount += openAmount
        } else {
            var ticker = _C(ex.GetTicker)
            if(ticker == null) {
                return false
            }
            ex.Sell(ticker.Sell, openAmount, '挂单')
        }
        return true
    } else {
        Log('持仓('+holdAmount+') 过多,不加仓')
        return false
    }
}

function closeShort(ex, closeAmount) {
    if (holdAmount >= closeAmount) {
        Log('已持仓: ' + holdAmount + ', 减仓:' + closeAmount)
        ex.SetDirection('closesell')
        ex.Buy(-1, closeAmount)
        holdAmount -= closeAmount
        return true
    } else {
        Log('持仓('+holdAmount+') 过少,不减仓')
        return false
    }
}

function cancelOrders(ex) {
    Log('取消所有挂单')
    while(true) {
        var orders = _C(ex.GetOrders)
        if (orders.length == 0) {
            break
        }
        for(var i = 0; i < orders.length;i++) {
            ex.CancelOrder(orders[i].Id)
        }
    }
}

function updatePosition(ex) {
    var pos = ex.GetPosition()
    if(typeof(pos) === 'undefined' || pos === null || 
        pos.length == 0 || typeof(pos[0].Type) == 'undefined'  || typeof(pos[0].Amount) == 'undefined' ) {
        return
    }
    Log('仓位信息:' + (pos[0].Type == 0?'多仓,   ':'空仓,  ') + JSON.stringify(pos))
    if(pos.length>0){
        holdAmount = pos[0].Amount
        // if(pos[0].Type == 0){ //多仓
        //     ordersInfo.pos = pos[0].Amount
        // }else{
        //     ordersInfo.pos = -pos[0].Amount
        // }
    }
}

function longStrategy(ex, records) {
    var lastSecondBar = records[records.length-2]

    if ((   lastSecondBar.Close > fastMa[fastMa.length - 2] && 
            lastSecondBar.Close > slowMa[slowMa.length - 2] && 
            lastSecondBar.Close > records[records.length - 2 - fastMaPeriod].Close
        ) || localIsShock){
            var openAmount = amount
            if (lastSecondBar.Close < lastSecondBar.Open) {
                yinxianCnt += 1
                yangxianCnt = 0
            } else if (lastSecondBar.Close > lastSecondBar.Open){
                yinxianCnt = 0
                yangxianCnt += 1
            } else {
                yangxianCnt = 0
                yinxianCnt = 0
            }

            if (yinxianCnt >= maxOppositeDirKNum) {
                Log('两连阴')
                openAmount += amount
                yinxianCnt = 0
            }

            if (yangxianCnt >= maxSameDirKNum) {
                Log('三连阳')
                yangxianCnt = 0
                Log('准备减仓')
                if(closeLong(ex, closeAmount)){
                    $.PlotFlag(records[records.length - 1].Time, 'closeLong', 'CL')
                }
            } else {
                Log('准备开仓')
                if(localIsShock) {
                    openAmount -= amount
                }
                if(openLong(ex, openAmount)){
                    $.PlotFlag(records[records.length - 1].Time, 'openLong', 'OL')
                }
            }
    }
}

function shortStrategy(ex, records) {
    var lastSecondBar = records[records.length-2]

    if ((   lastSecondBar.Close < fastMa[fastMa.length - 2] && 
            lastSecondBar.Close < slowMa[slowMa.length - 2] && 
            lastSecondBar.Close < records[records.length - 2 - fastMaPeriod].Close
        ) || localIsShock){
            var openAmount = amount
            if (lastSecondBar.Close < lastSecondBar.Open) {
                yinxianCnt += 1
                yangxianCnt = 0
            } else if (lastSecondBar.Close > lastSecondBar.Open){
                yinxianCnt = 0
                yangxianCnt += 1
            } else {
                yangxianCnt = 0
                yinxianCnt = 0
            }

            if (yangxianCnt >= maxOppositeDirKNum) {
                Log('两连阳')
                yangxianCnt = 0
                openAmount += amount
            } 

            if (yinxianCnt >= maxSameDirKNum) {
                Log('三连阴')
                yinxianCnt = 0
                Log('准备减仓')
                if(closeShort(ex, closeAmount)){
                    $.PlotFlag(records[records.length - 1].Time, 'closeShort', 'CS')
                }
            } else {
                Log('准备开仓')
                if(localIsShock) {
                    openAmount -= amount
                }
                if(openShort(ex, openAmount)){
                    $.PlotFlag(records[records.length - 1].Time, 'openShort', 'OS')
                }
            }
    }
}

function onBar (ex) {
    var records = _C(ex.GetRecords)
    if (records === null || records.length < slowMaPeriod) {
        return 
    }
    if (lastBar == null) {
        lastBar = records[records.length-1]
    }
    
    if (lastBar.Time == records[records.length-1].Time) {
        return
    }
    lastBar = records[records.length-1]
    updatePosition(ex)
    PlotMA_Kline(records)
    barCnt += 1

    var lastSecondBar = records[records.length-2]
    fastMa = TA.MA(records, fastMaPeriod)
    slowMa = TA.MA(records, slowMaPeriod)
    lastClose = lastSecondBar.Close
    last5thClose = records[records.length - 2 - 5].Close

    Log('收盘价:' +lastSecondBar.Close + 
    ', 前第5个收盘价:' +records[records.length - 2 - 5].Close + 
    ', 快MA:' + _N(fastMa[fastMa.length - 2]) +
    ', 慢MA:' + _N(slowMa[slowMa.length - 2]))
    if (makeLong) {
        longStrategy(ex, records)
    } else {
        shortStrategy(ex, records)
    }
}

function runLife(ex) {
    // var pass = new Date() - startTime
    if (barCnt >= runNBars) {
        if(isCleanPosition) {
            Log('已运行'+barCnt+'K周期,结束,取消订单,清仓#ff0000@')
            cancelOrders(ex)
            updatePosition(ex)
            $.PlotFlag(lastBar.Time, 'Exit', 'EXT')
            
            if (makeLong) {
                closeLong(ex, holdAmount)
            } else {
                closeShort(ex, holdAmount)
            }    
        } else {
            Log('已运行'+barCnt+'K周期,结束,不取消订单,不清仓#ff0000@')
            updatePosition(ex)
            $.PlotFlag(lastBar.Time, 'Exit', 'EXT')
        }
        return true
    } else {
        return false
    }
}

function status() {
    var table = {
        type: 'table',
        title: '信息',
        cols: [
            '运行K数',
            '持仓量',
            '阳线',
            '阴线',
            '收盘价',
            '前第5个收盘价',
            'MA'+fastMaPeriod,
            'MA'+slowMaPeriod,
        ],
        rows: []
      }
      table.rows.push([
            barCnt,
            holdAmount,
            yangxianCnt,
            yinxianCnt,
            lastClose,
            last5thClose,
            fastMa.length == 0 ? 0 : _N(fastMa[fastMa.length - 2]),
            slowMa.length == 0 ? 0 : _N(slowMa[slowMa.length - 2])
      ])
    LogStatus(
        '现在时间:' +_D() +
        '\n启动时间:' +startTime +
        '\n`' +
        JSON.stringify(table)+
        '`\n' +
        '\n托管者版本:' +Version() +
        '\n联系Wechat:ying5737#00ff00' +
        '\nWechat: ying5737info#ff000f'
      )

}

function reset() {
    holdAmount = 0
    lastBar = null
    yinxianCnt = 0
    yangxianCnt = 0
    lastClose = 0
    last5thClose = 0
    fastMa = []
    slowMa = []
    barCnt = 0
}

function main () {
    var ex = exchanges[0]

    Log('开工   '+ex.GetName())
 //   if(ex.GetName() != 'Futures_FMex' && !IsVirtual()) {
  //      throw '仅仅支持FMex'
  //  }
    Log('基地址  ' + baseUrl)
    if(!IsVirtual()){
        ex.IO('base', baseUrl) //切换基地址,方便切换实盘和模拟盘,实盘地址:https://api.fmex.com
    }
    ex.SetTimeout(1000);
    _CDelay(500)
    ex.SetContractType(contractType)
    ex.SetMarginLevel(marginLevel)
    updatePosition(ex)
    while (true) {
        try {
            if(!IsVirtual() && runLife(ex)) {
                if((typeof(GetCommand) == 'function') && enableCommand){
                    Log('等待指令, 继续 | 停止 #ff0000@')
                    while (true) {
                        var cmd = GetCommand()
                        if (cmd) {
                            Log('收到指令: '+cmd)
                            switch(cmd) {
                                case '停止':
                                    Log('停止, 退出!#ff0000@')
                                    return
                                case '继续':
                                    reset()
                                    Log('继续, 复位,开工!#ff0000@')
                                    break
                                case '切换策略行情:0':
                                    reset()
                                    localIsShock = true
                                    Log('切换策略行情为震荡行情继续, 复位,开工!#ff0000@')
                                    break
                                case '切换策略行情:1':
                                    reset()
                                    localIsShock = false
                                    Log('切换策略行情为趋势行情继续, 复位,开工!#ff0000@')
                                    break
                            }
                            if (cmd == '停止'){
                                Log('停止, 退出!#ff0000@')
                                return
                            } else if (cmd == '继续') {
                                reset()
                                Log('继续, 复位,开工!#ff0000@')
                                break
                            }
                        }
                        updatePosition(ex)
                        status()
                        Sleep(1000)
                    }
                } else {
                    Log('停止, 退出!#ff0000@')
                    return
                }
            }
            onBar(ex)
            status()
        } catch(e) {
            Log('出错了:'+e+', 请及时处理#ff0000@')
        }
        Sleep(interval)
    }
}


Thêm nữa

gulishiduan_ xếp hạng tần số caoXin cảm ơn sự hỗ trợ của Eric ở Vũ Hán, vì ý tưởng định lượng.

gulishiduan_ xếp hạng tần số cao 沟通//或其他策略购买请咨询:weixin:ying5737

gulishiduan_ xếp hạng tần số caoMột số chiến lược phổ biến để tối ưu hóa là: 1, Quản lý vị trí: Quản lý vị trí với tỷ lệ phần trăm vị trí đơn lẻ / tổng vốn, thích hợp hơn để sử dụng định lượng, đặc biệt là trong một số hệ thống tần số cao / di chuyển / đường dài trung bình. Chiến lược vị trí này rất tốt. 2, Nguyên tắc của mô hình bùng nổ là, dựa trên ý tưởng tiền tệ: tăng lợi nhuận. Chiến lược, sau khi lợi nhuận đạt đến 20%, sẽ khởi động mô hình bùng nổ được gọi là bùng nổ bùng nổ. Đó là trên cơ sở lợi nhuận 20%, tăng tốc độ giao dịch, tăng số lượng đơn đặt hàng, tăng lợi nhuận tiềm năng, tất nhiên rủi ro tiềm ẩn, trong mô hình bùng nổ bùng nổ lợi nhuận trên 20% cũng sẽ được tăng cường. Nếu bạn không có một chiến lược hoàn chỉnh mà bạn đã tự phát triển, hãy xem xét: việc tái tạo vốn thường xuyên hàng tháng là một cơ chế rất tốt. 4, chọn thời gian: chiến lược chọn thời gian của robot tốt hơn chiến lược giao dịch tổng hợp thủ công hoặc chủ quan. Nhiều người bạn không có tham số chọn thời gian khi phát triển chiến lược, dẫn đến một số chiến lược được sử dụng để chống lại xu hướng thị trường hoặc tình trạng thị trường, để sử dụng chiến lược, hiếm khi chọn thời gian và / hoặc dựa trên tỷ lệ biến động để xem xét liệu có nên giao dịch, không làm chiến lược tạm dừng và dừng lại, đây là một nhầm lẫn với vùng mù.