Estratégia de pontos de entrada aleatórios

Autora:ChaoZhang, Data: 2023-09-12 14:06:18
Tags:

Estratégia de negociação em pontos de entrada aleatórios

A estratégia de negociação do Random Entry Point usa números inteiros gerados aleatoriamente para determinar entradas para negociações longas e curtas.

Os princípios desta estratégia são:

  1. Definir um número inteiro aleatório, por exemplo 6.

  2. Cada vez que uma nova vela se forma, tome o volume atual modulo o inteiro aleatório para obter um número aleatório entre 0-5.

  3. Divida 0-5 em duas metades, 0-2 para transações longas, 3-5 para transações curtas.

  4. Se o número for entre 0-2 e não houver posição atual, vá longo.

  5. Estabelecer um stop loss e obter lucro após a entrada nas negociações, por exemplo, -5% SL, 15% TP. Espere que o SL/TP seja acionado.

  6. Posições limpas depois de atingido o SL/TP, e aguardar o próximo sinal aleatório.

  7. Repetir os passos 1 a 6 para tomar continuamente posições longas/cortas aleatórias.

  8. A lei dos grandes números garante a rentabilidade a longo prazo, a SL controla o risco.

As vantagens desta estratégia são a simplicidade de implementação, a ausência de necessidade de prever a direção do mercado, a lucratividade a longo prazo seguindo sinais aleatórios.

Em resumo, a estratégia Random Entry Point baseia-se na lei dos grandes números para a rentabilidade, utiliza SL/TP para controlar o risco, adequado para investidores com capital suficiente para uso a longo prazo.


/*backtest
start: 2022-09-11 00:00:00
end: 2023-04-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// strategy(title="Random entry points",overlay=true, default_qty_type=strategy.cash, default_qty_value=500, currency="USD", initial_capital = 1000, commission_type=strategy.commission.percent, commission_value=0.07)

i = input(defval = 6, title = 'Random integer', type = input.integer)
stop_loss = input(defval = -5, title = 'Stop loss', type = input.integer)
take_profit = input(defval = 15, title = 'Take profit', type = input.integer)

random = volume % i
trade_area = float(i) / 2

var profit = 0.0
var start_price = 0.0
var in_deal = false

if not in_deal
    profit := 0.0 

if random < trade_area and not in_deal
    in_deal := true
    start_price := close
    strategy.entry("long", true)
   
if in_deal
    profit := (close / start_price -1) * 100
   
if profit < stop_loss or profit > take_profit
    strategy.close("long")
    in_deal := false

Mais.