Estratégia manual de alertas de compra e venda

Autora:ChaoZhang, Data: 2024-02-21 11:02:02
Tags:

img

Esta estratégia é uma ferramenta manual de alerta de compra e venda que pode definir preço de compra, preço de venda e outros parâmetros.

Estratégia geral

Esta estratégia é uma ferramenta de negociação manual não automatizada. Ela pode gerar alertas para os usuários comprar e vender a preços pré-definidos. Os usuários podem definir o seguinte:

  1. Período
  2. Preço de entrada e tipo de entrada (preço stop loss ou limite)
  3. Preço-alvo
  4. Preço de paragem

A estratégia pode ser facilmente testada alterando o valor do ciclo e definindo o valor.

Princípio da estratégia

  1. Os utilizadores definem primeiro o período de tempo durante o qual a estratégia é válida.
  2. Em seguida, defina o tipo de compra para parar a perda ou preço limite, e o preço de compra específico.
  3. Fixar o preço-alvo e o preço de stop loss.
  4. Quando o preço aciona a condição de compra, um alerta de compra será emitido. Por exemplo, se você escolher stop loss, quando o preço for menor que o preço de compra definido, um alerta de compra será emitido.
  5. Durante o período de detenção, se o preço-alvo for acionado, será emitido um alerta de venda.

Desta forma, os utilizadores podem determinar manualmente a oportunidade de negociação com base nas informações de alerta sem a necessidade de colocação automatizada de ordens, que é mais flexível.

Análise das vantagens

  1. A maior vantagem desta estratégia é a operação flexível. Os utilizadores podem decidir se querem comprar ou vender com base no seu próprio julgamento em vez de negociação automatizada, o que dá mais controlo.
  2. Ao definir o preço stop loss e o preço-alvo, o risco pode ser eficazmente controlado para evitar perdas enormes.
  3. Diferentes estratégias de negociação podem ser testadas ajustando as condições de compra e os parâmetros para otimização.
  4. Como ferramenta de apoio ao comércio manual, pode desempenhar um papel importante e melhorar a eficiência do comércio.

Análise de riscos

  1. A estratégia baseia-se no julgamento operacional do utilizador.
  2. Em um mercado em rápida mudança, as mensagens de alerta podem demorar, levando a decisões comerciais erradas.
  3. Se não se prestar muita atenção e não se operar em tempo hábil, pode-se perder a melhor oportunidade de negociação.
  4. Configurações de parâmetros incorretas também podem afetar o desempenho da estratégia e necessitam de testes e otimização iterativos.

Para reduzir os riscos, recomenda-se o uso de stop loss para limitar as perdas; prestar muita atenção ao mercado em momentos críticos e operar em tempo hábil; e realizar testes de várias rodadas para otimizar os parâmetros.

Direcção de otimização

  1. Podem ser definidos mecanismos de stop loss mais complexos, tais como stop loss móvel, swing stop loss, etc.
  2. Podem ser adicionados mais tipos de condições de negociação, como a negociação de ruptura.
  3. Podem ser adicionados mecanismos de gestão de posição, tais como pirâmide ou redução de posição.
  4. Podem ser adicionadas mais condições de filtragem para evitar trocas erradas.
  5. Os alertas podem ser enviados através de mensagens no Telegram ou WeChat.
  6. As definições dos parâmetros podem ser salvas como modelos para ajustes e testes rápidos.

Com estas otimizações, a ferramenta pode ser mais fácil de usar e inteligente para melhorar a eficiência da negociação manual.

Resumo

Como uma ferramenta para ajudar a negociação manual, a maior vantagem desta estratégia é a operação flexível, que permite aos usuários determinar totalmente as oportunidades de negociação com base em seu próprio julgamento, em comparação com estratégias de negociação automatizadas. Ao mesmo tempo, também fornece funções de configuração de parâmetros para os usuários testarem facilmente diferentes estratégias de negociação, verificar ideias de negociação e servir a vários propósitos.


/*backtest
start: 2024-01-21 00:00:00
end: 2024-02-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © MGTG

title_name = 'Manual Buy & Sell Alerts'

//@version=5
strategy(
 title=title_name, overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, 
 pyramiding=1, commission_type=strategy.commission.percent, commission_value=0.1)

// Period
sTime         = input(timestamp("2020-01-01"), "Start", group="Period", inline='1')
eTime         = input(timestamp("2030-01-01"), "End", group="Period", inline='2')
inDateRange   = true

// Bot Set-up
buy_type = input.string('stop', 'Buy Type', group='Buy&Sell', inline='1', options=['stop', 'limit'])
buy_price = input.float(49000, 'Buy Price', group='Buy&Sell', inline='1')

target_price = input.float(51000, 'Target Price', group='Buy&Sell', inline='2')
stop_price = input.float(47000, 'Stop Price', group='Buy&Sell', inline='2')
avg_price = strategy.position_avg_price
division = 1

// Alert message
AlertLong=input.string("Buy message", "Buy Alert Message",  group='Alert set-up', inline='1')
AlertExit=input.string("Sell message", "Sell Alert Message",  group='Alert set-up', inline='1')

plot(buy_price, 'Buy Price', color=color.new(#009688, 0), style=plot.style_linebr, offset=1)
plot(target_price, 'Take Profit', color=color.new(color.orange, 0), style=plot.style_linebr, offset=1)
plot(stop_price, 'Safety', color=color.new(color.aqua, 0), style=plot.style_linebr, offset=1)

posSize = 
 strategy.equity / close

strategy.exit("sell", "buy", limit=target_price, stop=stop_price, alert_message=AlertExit)

longCondition = inDateRange and strategy.position_size == 0
if longCondition and buy_type == 'stop'
    strategy.entry("buy", strategy.long, qty=posSize, stop=buy_price, when=close < buy_price, comment="buy_STOP", alert_message=AlertLong)

if longCondition and buy_type == 'limit'
    strategy.entry("buy", strategy.long, qty=posSize, limit=buy_price, when=close > buy_price, comment="buy_LIMIT", alert_message=AlertLong)

Mais.