Tuesday 1 August 2017

Oddball Trading System


Oddball SampP System por Mark Brown Oddball SampP System por Mark Brown Negociando o momentum da amplitude do mercado Uma das melhores maneiras de manter-se a par da dinâmica verdadeira dos mercados é monitorar suas edições de avanço e de declínio. Heres uma estratégia que usa o impulso de avançar questões para o tempo de curto prazo comércios. O estoque de rastreamento SampP (SPY) eo contrato de futuros SampP 500 provavelmente estão entre os mercados mais difíceis de negociar. As estatísticas mostram muito provavelmente o contrato de futuros para o topo de um grupo de mercados responsáveis ​​pelo esgotamento mais rápido das contas de negociação do cliente. A maioria dos comerciantes de curto prazo comercializar os mercados SampP 500 usando prazos que vão desde um único carrapato até uma hora. Ao negociar nestes prazos mais curtos, é fácil ficar desorientado e perder a pista da verdadeira dinâmica do mercado. Uma ferramenta que muitos comerciantes usam para acompanhar a força do mercado interno é um indicador de largura, como a linha de adiantamento-declínio (o total em andamento das ações NYSE avançando menos os estoques em declínio). As mudanças no número de avanço ou declínio questões podem oferecer um vislumbre da dinâmica do mercado não imediatamente revelado pela ação de preços. Por exemplo, mesmo que o mercado esteja aumentando, uma linha declínio declínio antecipado pode indicar que esses ganhos estão sendo alimentados por um número cada vez menor de ações, caso em que uma correção ou reversão pode ser iminente. Enquanto os indicadores de largura são comumente usados ​​para medir a força direcional de longo prazo, a análise intraday de avançar ou diminuir as questões podem ser usadas para desenvolver estratégias de negociação a curto prazo. Aqui, veremos como a medição do momento de avançar as ações da NYSE em uma base horária pode ser usada para negociar o tempo. Amplitude de ar fresco É bem conhecido que o viés direcional combinado das listas de edições avançadas, decrescentes e inalteradas da NYSE são úteis na determinação da direção geral do índice SampP 500 e futuros SampP. Tradicionalmente, os estudos têm sido baseados em uma combinação de questões de avanço e declínio (como a linha de declínio antecipado descrita anteriormente), ou o avanço, declínio e questões inalteradas. No entanto, a pesquisa sugere que você pode obter o mesmo benefício (e simplificar sua análise no processo), usando apenas as estatísticas avançadas de problemas. E assim como muitos comerciantes de curto prazo usam impulso de preço em suas decisões de negociação, o impulso de amplitude pode ser usado para desencadear negócios. Na verdade, o impulso das questões avançadas fornece informações suficientes para desenvolver uma estratégia de negociação rentável que lhe permite ignorar os preços reais do mercado. Um modelo de negociação simples baseado nesta abordagem é o sistema Oddball SampP, que usa leituras horárias da NYSE avançando lista de problemas. Este modelo de cronometragem baseia-se na teoria de que, a curto prazo, os futuros SampP (e mesmo o índice SampP real) e a amplitude do mercado podem desviar-se de tempos em tempos, mas eles ainda se alinharão quando grandes movimentos forem feitos. O objetivo original por trás dessa estratégia era usar o avanço / declínio / números inalterados para identificar situações de alta volatilidade que mostraram a maior probabilidade de ter um viés direccional. No entanto, pesquisas e testes mostraram que era suficiente usar as questões avançando sozinho não apenas como um filtro, mas também como uma estratégia de negociação autônoma. Além disso, como mencionado anteriormente, usando apenas o avanço números questões torna a abordagem menos complicada. Como uma abordagem de negociação muito básica, esta estratégia também funciona como um excelente ponto de comparação contra o qual comparar outros sistemas. A estratégia baseia-se no cálculo da taxa de variação (ROC) do número de edições avançadas por hora. ROC, que é um indicador do tipo oscilador, é a diferença (ou alternadamente, a relação) entre o preço atual e o preço n períodos no passado. Por exemplo, a ROC de cinco dias seria a diferença entre o preço de hoje e o preço de cinco dias atrás. Em um gráfico horário, o período de cinco ROC seria a diferença entre o preço atual eo preço de cinco bares (horas) atrás. (Para uma discussão mais aprofundada sobre o indicador ROC, veja Indicador Insight: Momentum e taxa de variação, Active Trader, outubro, p.82). Porque há sete horas no dia de negociação, um ROC sete-período do número de avanço de questões foi usado nesta estratégia. Uma maneira de construir um sistema baseado em oscilador é disparar comércios quando o indicador cruza acima e abaixo da linha zero (a linha mediana que representa momento neutro, quando o preço atual é igual ao preço n períodos atrás). Mas uma alternativa melhor é usar dois níveis de indicador separados, ou zonas um para iniciar longos comércios e outro para iniciar todos os comércios curtos. Uma boa configuração inicial é definir o nível de compra para 3% eo nível de venda para 1%. Ou seja, você compra assim que a taxa de mudança das questões de avanço é 3 por cento maior do que era há sete períodos e vender assim que cai abaixo de 1 por cento maior do que era sete períodos atrás. (Veja o Instantâneo de Estratégia, abaixo, para a fórmula precisa para o indicador.) Isso significa que o sistema estará sempre no mercado, com uma posição longa ou curta. As configurações de indicadores usadas aqui foram selecionadas para manter a estratégia o mais simples e simples possível para testes. Os comerciantes podem, naturalmente, experimentar com outras configurações de indicadores para ver se eles produzem melhores resultados. De forma semelhante, um indicador de tipo oscilador diferente poderia ser substituído pelo ROC. A lógica do sistema subjacente ea abordagem de negociação permaneceriam as mesmas. Em suma, o estranho SampP sistema funciona da seguinte forma: Se a taxa de mudança das questões de avanço é maior do que comprar o nível de gatilho, comprar o mercado. Se a taxa de variação das emissões de avanço for menor que o nível de giro de venda, venda o mercado. Cada hora, hora Por que este sistema recalcula cada hora na hora, até e incluindo o fechamento do mercado de ações às 4 pm EST, você não será capaz de usar a última leitura do dia se você está negociando o SampP 500 estoque de rastreamento (SPY). No entanto, se você está negociando os futuros SampP, você ainda será capaz de entrar em um comércio com base na última leitura, porque o mercado de futuros continua a negociação até às 4:15 p. m. EST. Para qualquer mercado, isso também significa que você terá que esperar para a primeira leitura às 10:00 EST para o comércio na parte da manhã. Mas isso é realmente vantajoso, porque como muitos comerciantes profissionais apontam, você deve evitar o comércio imediatamente após o aberto por causa da volatilidade direcional que muitas vezes ocorre antes que o mercado encontra sua direção e ritmo para o dia. Este tipo de estratégia de negociação é reforçada pelo fato de que é fácil de monitorar e executar, e é baseado em uma entrada principal. O período de uma hora foi selecionado porque está fora do horizonte de tempo típico do trader de curto prazo, e também porque a consistência é um fator chave na implementação de um modelo mecânico. É fácil verificar seus negócios cada hora na hora, ou programar seu laptop, telefone móvel ou computador handheld para fazer assim para você. Além disso, o uso de apenas um ponto de dados por hora também aumenta a confiabilidade do modelo. Porque porque quando você vê um gráfico intraday e observa uma cópia má do preço ele será muito provável o alto ou o ponto baixo da barra dada. Ao eliminar todos os pontos de dados, mas o fechamento, você também reduzir a possibilidade de erros. Este é um trecho. Para o artigo completo, veja a edição de dezembro de 2000 da revista Active Trader. Estratégia: Sistema Oddball SampP Abordagem: sistemática, stop-and-reverse (sempre no mercado) Mercado: Índice de seguimento de ações (SPY, QQQ) e futuros de índices de ações Configuração de indicadores: Criar um indicador de taxa de mudança dos valores horários de fechamento Dos avanços da NYSE. Inclua apenas o ponto de dados de fechamento da hora natural, começando às 10 da manhã e terminando às 4 da madrugada. Para calcular o indicador, utilize a seguinte fórmula: Taxa de variação nas emissões avançadas (RAI) (AI / AIn -1) 100, AI Número máximo AIn Número de adiantamentos n períodos atrás Entrada: É emitido um sinal de compra sempre que o indicador É maior que 3. Um sinal de venda é emitido toda vez que o indicador é menor que 1. Sair: Parar e inverter. As posições são revertidas com cada novo sinal de compra e venda, conforme descrito acima. Controle de risco / administração de dinheiro: Não há nenhuma técnica de administração de dinheiro empregada, a não ser que o sistema permaneça no mercado 100% do tempo, seja longo ou curto, com um número constante de contratos. RAI - Taxa de variação nas questões de antecipação Sistema Oddball SampP Insira Fml curto / fechado curto (RAI - Taxa de variação nas edições avançadas) gt 50 (OPT) 10 (OPT) Sistemas OddBall Mark Brown Automated Trading Systems Atalho para Discovery Workshop 8211 Desenvolvimento do modelo de negociação disponível para quem deseja entender a lógica de como criar um método de negociação robusto. Modelo de Desenvolvimento disponível para quem deseja entender a lógica de como criar um método de negociação robusto. Embora não para o investidor médio que simplesmente deseja lucrar com os mercados. Os comerciantes são tipicamente nunca satisfeito até que eles próprios compreender os métodos aplicados e criaram seu próprio sistema personalizado 8211 formação e discussão por Mark Brown. Desde 1987, Brown atua como consultor independente de vários comerciantes institucionais e entidades com base em honorários. Ele é um fornecedor licenciado do Market Profile Indicator para o Chicago Board of Trade. Brown é também o criador do publicado Oddball Systems. Suas obras foram divulgadas em livros, revistas e várias formas de mídia eletrônica, bem como através de palestras. Mark Brown 8211 autor do publicado e popular sistema Oddball apresentado na revista Active Trader. Notável como um desenvolvedor de sistemas de negociação automatizado de classe mundial e mentor. Tópicos de discussão: Negociação automatizada, Sistemas de negociação, Negociação de negócios, Suporte técnico, Forex, Mercados financeiros, SP 500, E-mini Contratos, Investimentos. Mais sobre Oddball SystemsSophisticated sistemas elegantemente programado ainda simplista e não além da compreensão da lógica humana comum. Desenvolvido usando o software personalizado de análise personalizado e hardware criado para a mina de dados profundos para a maior probabilidade anomalias do mercado reoccurring. O intelecto humano é capaz de compreender os resultados da profunda pesquisa de mercado de mineração de dados. No entanto, seria impossível para uma mente humana para nunca descobrir ou conceber estas réplicas anomalias de observação sozinho. A especialização em modelagem computacional e conhecimento exaustivo distingue o sistema derivado empírico típico de um modelo de dados profundos minados. A análise quantitativa por computador combinada com a limpeza de dados permite revelar a verdadeira natureza do mercado em questão. É necessário um enorme compromisso financeiro, sem garantia de que possam ser encontradas ou exploradas anomalias de mercado replicáveis, muito menos negociáveis. No entanto, até à data não houve mercados líquidos que não tenham produzido modelos rentáveis ​​em grande número. Mitos abundam que os sistemas mecânicos exigem ajuste contínuo para se adaptar às condições de mercado variadas. Modelos de negociação devidamente concebidos irão desfrutar de muitos anos se não décadas de rentabilidade contínua. Novamente, isto é o que separa os modelos empiricamente projetados de modelos de mineração de dados superiores. Grande parte do sucesso da descoberta pode ser diretamente atribuída à aquisição do conhecimento para filtrar adequadamente os dados. Esta técnica sozinha pode ser creditada com uma porcentagem notável dos lucros derivados deste método de modelagem. Experiência e capital comprometimento desempenhar um grande papel na longevidade da modelagem. Esses tipos de modelos são os resultados diretos de inúmeras horas-homem e milhões de dólares gastos em pesquisas que abrangem mais de uma década. No entanto, todo esse esforço poderia ter sido facilmente desperdiçado se o processo de desenvolvimento não tivesse sido seguido com uma tenacidade febril, como é até hoje. Às vezes, surgem grandes descobertas quando os pesquisadores se afastam e deixam o processo revelar a verdade de sua análise final. A mineração de dados e análises complexas são difíceis o suficiente sem contaminar todo o processo com preconceitos e emoções humanas. Assim, a intervenção humana provou ser a ferramenta menos desejável no inventário de pesquisa de modelagem. Obrigado, Mark Brown Sobre Mark Brown Oddball Systems por Mark Brown OddBall Systems foi criado por Mark Brown, e destaque na revista Active Trader. É um sistema de comércio projetado para negociar o futuro do índice do SP (ou a contrapartida do emini). A geração de sinal de Oddball não depende dos próprios dados de preços. Em vez disso, baseia-se nos dados da Advance Issues da NYSE. Sistema de Sistema de Retirada nº 1 Janeiro / Fevereiro de 2001, Sistema de Meandro Março de 2001, Sistema Híbrido nº 1 de Outubro de 2000, Sistema RS nº 1 Novembro de 2000, Junho 2001, Valor de Beta Novembro de 2001, Variação de padrão Harris 3L-R Dezembro de 2001, Sistema de bolsas profundas Janeiro de 2002, Sistema de comércio de pares Fevereiro de 2002, Sistema Pair-trade II Abril 2002, Sistema Pair-trade III Maio 2002, Variação Pristine Junho 2002, Saídas Expert Julho 2002, Crescimento médio móvel Agosto 2002, Movimento reverso Setembro 2002, Baixa volatilidade Outubro 2002, Sistema de estoque de contrapeso Dezembro de 2002, Sistema de referência de volatilidade janeiro de 2003, Sistema de breakout de volatilidade de longo prazo Fevereiro de 2003, Sistema de breakout dinâmico Maio de 2004, Sistema de crossover de curto prazo WMA Maio 2004, Junho de 2004, Sistema de Tendências RSI (Laboratório do Sistema de Negociação de Futuros) Junho de 2006, Indicador de Ponto Médio do Canal Ativo Trader é Trabalhando com várias empresas de software para fornecer código para Trading System Labs não mostrado aqui. Entradas: LookBack (9), WhereToBuy (0.5) Variáveis: HighValue (0), LowValue (99999), BuyValue (0) LowValue Menor (Low, LookBack) HighValue Maior (Alto, LookBack) BuyValue (HighValue - LowValue) 0 Then Begin Compre amanhã em BuyValue LowValue Stop Se Fechar lt LowValue1 Então ExitLong em Open Se BarsSinceEntry 9 e OpenPositionProfit lt 0 Então ExitLong on Open Outubro de 2000, Código TradeStation: Variáveis: RelStr (0), AvgRelStr (0), CalcRelStr (0) , AvgOBV (0), CalcOBV (0), CalcStr (0) RelStr IFF (AvgPreço 0, 0, AvgPreço / AvgPreço Dados2) AvgRelStr Média (RelStr, 5) CalcRelStr IFF (RelStr 0, 0, RelStr / AvgRelStr) CalcStr CalcRelStr CalcOBV Se CalcStr Cruza Acima de 1.0 e MarketPosition 0 Depois de Comprar em Fechar Se CalcStr Cruza Abaixo de 1 Então ExitLong em Fechar Se Fechar lt EntryPrice 0.96 Then ExitLong on Close November (0/0, 0, OBV / AvgOBV) 2000, código da TradeStation: Condition1 MarketPosition 0 e Close Average (Close, 50) e High High1 e (close1 lt close2 e close2 lt close3) Se Condition1 True Then Compre amanhã no Market ExitLong (quotStopquot) amanhã no menor Se PositionProfit 0 Then ExitLong (quotExitquot) amanhã no Market janeiro / fevereiro de 2001, o código TradeStation: Vars: SumVS (0), AvgVS (0), DiffVS (0), StdVS (0), SetArr (0), SumArr (0) (0), VSHigh (0), RiskReward (0) Para SetArr 0 Para 4 Começar VSSetArr 4 0 (OpenSetArr - AvgPriceSetArr 1) / AvgPriceSetArr 1 VSSetArr 4 1 (HighSetArr - AvgPriceSetArr 1) / AvgPriceSetArr 1 Para SumArr 0 Para 19 Begin Se SumArr 0 Então SumVS SumVS VSSumArr Se SumArr 19 Então AvgVS SumVS / 20 1) / AvgPriceSetArr 1 VSSetArr 4 2 (LowSetArr - AvgPriceSetArr 1) / AvgPriceSetArr 1 VSSetArr 4 3 (CloseSetArr - AvgPriceSetArr 1) Para DiffArr 0 Para 19 Begin Se DiffArr 0 Então DiffVS DiffVS Square (VSDiffArr - AvgVS) Se DiffArr 19 Então StdVS SquareRoot (DiffVS / 20) VSLow AvgPrice (1 (AvgVS - StdVS 2)) VSMid AvgPrice (1 AvgVS) VSHigh AvgPrice (1 (AvgVS StdVS 2)) Se MarketPosition 0 Então Comece Comprar (quotBuyquot) Amanhã em VSLow Limite Se MarketPosition 1 Então ExitLong (quotPTquot) Amanhã em VSHigh Limite Se MarketPosition 1 Então ExitLong (quotTSquot) Amanhã em VSLow Stop Se Aberto Amanhã gt VSLow Then ExitLong (QuotSLaquot) De entrada (quotBuyquot) Em (VSLow - (VSMid-VSLow)) Parar Se Aberto Amanhã lt VSLow Then ExitLong (quotSLbquot) Código: Vars: MaLen (21), Ratio2 (0), Ratio3 (0), MaRatio2 (0), MaRatio3 (0), DiffMaRatio2 (0), DiffMaRatio3 (0), ProdDiff (0), UpperProdDiff (0), LowerProdDiff (0) Razão2 C / C Dados2 Relação3 C / C Dados3 MaRatio2 Média (Relação2, MaLen) MédiaMáRica3 Média (Relação3, MaLen) DiffMaRatio2 Razão2 / MaRatio2 DiffMaRatio3 Ratio3 / MaRatio3 ProdDiff DiffMaRatio2 DiffMaRatio3 UpperProdDiff 1 StdDev (ProdDiff, MaLen) 1 LowerProdDiff 1 - StdDev (ProdDiff, MaLen) 2 Se MarketPosition 0 e BarsSinceExit (1) gt 1 e ProdDiff gt UpperProdDiff e ProdDiff gt ProdDiff2 Então Buy (quotGo Longquot) no Close Se MarketPosition 1 e ProdDiff lt ProdDiff4 Então ExitLong (quotEnd Longquot) no Market ExitLong QuotTrailing Longquot) amanhã no menor (Baixo, 2) Parar Se MarketPosition 0 e BarsSinceExit (1) gt 1 e ProdDiff lt LowerProdDiff e ProdDiff lt ProdDiff2 Então Sell (quotGo Shortquot) em Close Se MarketPosition -1 e ProdDiff gt ProdDiff4 Then ExitShort (quotEnd Shortquot) no Mercado ExitShort (quotTrailing Shortquot) amanhã no mais alto (Alto, 2) Parar Se BarsSinceEntry 8 e OpenPositionProfit lt 0 Em seguida, comece ExitLong no Market ExitShort no Market End Junho 2001, Código TradeStation: Input: VSStd (1) Vars: SumVS 0), AvgVS (0), DiffVS (0), StdVS (0), SetArr (0), SumArr (0), DiffArr (0), VSLow (0), VSMid (0), VSHigh (0), RiskReward 0) Array: VS20 (0) Para SetArr 0 Para 4 Começar VSSetArr 4 0 (OSetArr - CSetArr 1) / CSetArr 1 VSSetArr 4 1 (HSetArr - CSetArr 1) / CSetArr 1 VSSetArr 4 2 (LSetArr - CSetArr 1) / CSetArr 1 VSSetArr 4 3 (CSetArr - CSetArr 1) / CSetArr 1 End Para SumArr 0 a 19 Begin Se SumArr 0 SumVS 0 SumVS SumVS VSSumArr Se SumArr 19 Então AvgVS SumVS / 20 Para DiffArr 0 Para 19 Begin Se DiffArr 0 Então DiffVS 0 DiffVS DiffVS (VSDiffArr - AvgVS) Se DiffArr 19 Então StdVS SquareRoot (DiffVS / 20) Fim End VSLow C (1 (AvgVS - StdVS VSStd)) VSMid C (1 AvgVS) VSHigh C (1 (AvgVS StdVS VSStd)) Se MarketPosition 0 e BarsSinceExit (1) gt 1 Então Begin If Average (Close, 80) gt Average (Close, 80) 11 Então Buy (quotBuyquot) tomorrow at VSLow limit Se Média (Close, 80) em VSHigh limite End If BarsSinceEntry gt 1 então começar ExitLong em Fechar ExitShort em Fechar End Julho de 2001, o código TradeStation: Vars: Malen (9), AvgVolume (0), Turbo (0), InvTurbo (0), MaWeight (0), TurboMA (0) MédiaVolume Média (V, MaLen) Turbo (AvgVolume - Menor (AvgVolume, MaLen)) / (Maior (AvgVolume, MaLen) - Menor (AvgVolume, Malen) InvTurbo 1 - Turbo If MaLen gt 2 Então MaWeight / (1 MaLen)) Else MaWeight 0.67 TurboMA TurboMA InvTurbo AvgPreço Turbo Se Data lt 1000401 Em seguida, Iniciar Se MarketPosition 0 e C lt TurboMA e TurboMA lt TurboMA 1 Em seguida, comprar amanhã no mais alto (Alto, 2) Stop End If MarketPosition 1 e C lt TurboMA Então Começar ExitLong no Fechar ExitLong Amanhã em EntryPrice 0.96 Parar Terminar Se Data gt 1000401 Então Começar Se MarketPosition 0 e C gt TurboMA e TurboMA gt TurboMA 1 Então Vender amanhã no mais baixo (Baixo, 2) Stop End Se MarketPosition -1 e C gt TurboMA então começar ExitShort em Fechar ExitShort Amanhã em EntryPrice 1,04 Parar End agosto de 2001, TradeStation código: Se (Maxlist (ALTA3, Close4) gt High4 Ou Maxlist (ALTA3, Close4) gt ALTO2 Ou Maxlist (ALTA3, Close4) gt High1) e fechar Lt Close1 e Aberto Amanhã lt High3 Em seguida, comprar 1 Contrato Amanhã em (Max3 (Close3)) 1.001) Stop If (Minlist (Low3, Close4) lt Low4 ou Minlist (Low3, Close4) lt Low2 ou Minlist (Low3, Close4) LOW1) e fechar gt Fechar1 e Open Amanhã gt Low3 então vender um contrato Amanhã on (Minlist (Low3, Close4) 0,999) Parar Se EntryPrice gt 0 Then começar Se MarketPosition 1 então começar ExitLong em EntryPrice 0,96 Parar ExitLong em EntryPrice 1,12 Limite End If MarketPosition -1 Then Begin ExitShort on EntryPrice 1.04 Parar ExitShort on EntryPrice 0.88 Limite End End Se BarsSinceEntry gt 3 Em seguida, SetExitOnClose ExitLong on Close ExitShort on Close End Outubro 2001, Código TradeStation: Entradas: DepPrice (Close of data1), IndPrice (Close of data2 ) Vars: Comprimento (63), iBeta (1), Ind (0), Dep (0), SumX (0), SumY (0), SumXY (0), SumXsq (0), j - DepPrice1) / DepPrice1 Ind (IndPrice - IndPrice1) / IndPrice1 Se CurrentBar gt Comprimento Começar SumX Summation (Ind, Length) SumXY 0 SumY Summação (Dep, Length) SumXsq 0 Para j 0 para Length - 1 Começar SumXY SumXY (Indj Depj ) SumXsq SumXsq Square (Indj) End If SumXY ltgt 0 e SUMX ltgt 0 Then ibeta ((Comprimento SumXY) - (SUMX Sumy)) / ((Comprimento SumXsq) - Square (SUMX)) Se IndPrice gt Average (IndPrice, Comprimento) E iBeta gt 1 e MarketPosition ltgt 1 Em seguida, comprar 1 Contrato amanhã no menor (Baixo, 5) Limite Se IndPrice lt Média (IndPrice, Length) e iBeta lt 1 e MarketPosition ltgt -1 Então SellShort 1 Contrato amanhã no mais alto (Alto, 5 ) Limite Se EntryPrice gt 0 Then começar Se Fechar lt EntryPrice 0,96 ou Fechar gt EntryPrice 1.12 então vender Amanhã no mercado Se Fechar gt EntryPrice 1,04 ou Fechar lt EntryPrice 0,88 Então BuyToCover Amanhã no mercado End novembro de 2001, código TradeStation: Entradas: pTarget (12 ), StopL (4) Variáveis: ProfitPrice (0), StopPrice (0) Se L1 lt L2 e L2 L3 lt e H0 gt H3 Então Buy (quot3L-'R) Next Bar no Open ProfitPrice EntryPrice (1 pTarget / 100) StopPrice EntryPrice (1 - PTarget / 100) Se MarketPosition 1 Em seguida, começar a vender (quot3L-R Exitquot) Next Bar em ProfitPrice Limit Sell (quot3L-R Stopquot) Next Bar em StopPrice Stop End Dezembro de 2001, TradeStation código: Entradas: MaxLength (5) Se Marcar (0), LongLoss (0), ShortLoss (0) Se BarsSinceEntry gt (MaxLength - 2) Então SetExitOnClose Se MarketPosition ltgt 1 e Close lt AvgPrice e AvgPrice lt AvgPrice5 Então Comece Se Aberto Amanhã lt AvgPrice Then Begin Buy (quotLongquot) Amanhã no AvgPrice Parar End End Se MarketPosition ltgt -1 e Fechar gt AvgPrice e AvgPrice gt AvgPrice5 Em seguida, Comece Se Aberto Amanhã gt AvgPrice Em seguida, Begin SellShort (quotShortquot) amanhã no AvgPrice Stop End End MarPos MarketPosition Se MarPos ltgt MarPos1 e MarPos 1 Então LongLoss Low1 Se MarPos ltgt MarPos1 e MarPos -1 Então ShortLoss High1 Se EntryPrice gt 0 Em seguida, Inicie Se BarsSinceEntry gt 1 Em seguida, Inicie LongLoss MaxList (LongLoss, Low) ShortLoss MinList (ShortLoss, High) End Else Begin LongLoss MaxList (LongLoss, Low) ShortLoss MinList ShortLoss, High) End If MarketPosition 1 Em seguida, comece a vender (quotLSquot) amanhã em LongLoss Stop Sell (quotLTquot) amanhã no mais alto (alto, 5) Limite End Se MarketPosition -1 Em seguida, Begin BuyToCover (quotSSquot) amanhã em ShortLoss Stop BuyToCover (quotSTquot) Amanhã, no mínimo (Baixo, 5) Limite End End Janeiro de 2002, Código da Estação Comum: Variáveis ​​LenRC (5), TradeLenRC (5), RiskCalc (0), RC1 (0), RC2 (0), RC3 (0), RC5 (0), RC6 (0), RC7 (0), RC8 (0), RC9 (0), RC10 (0) RC1 RateOfChange (Close Data1, LenRC) RC2 RateOfChange RateOfChange (Close Data3, LenRC) RC8 RateOfChange (Close Data3, LenRC) RC4 RateOfChange (Fechar Data4, LenRC) RC5 RateOfChange (Close Data6, LenRC) RC6 RateOfChange Fechar Data9, LenRC) RC10 RateOfChange (Fechar Data10, LenRC) Se MarketPosition 0 e RC1 MinList (RC1, RC2, RC3, RC4, RC5, RC6, RC6, RC7, 5) Fim Se MarketPosition 0 e RC1 MaxList (RC1, RC2, RC3, RC7, RC5, RC6, RC6, RC7, RC8, RC9, RC10) Então Começar Vender Next Bar no Mercado RiskCalc AvgTrueRange (5) End If BarsSinceEntry gt TradeLenRC Then Begin ExitLong Próxima Barra no Mercado ExitShort Próxima Barra no Mercado Fim Fevereiro de 2002, Código da Estação de Comércio: Vars: Relação (0), AvgRatio (0), RiskCalc (0) Relação Fechar Data1 / Close Data2 AvgRatio XAverage (Ratio, 9) Se AvgRatio Cruas above AvgRatio9 Em seguida, começar a comprar no mercado RiskCalc AvgTrueRange (9) Terminar Se AvgRatio cruza abaixo AvgRatio9 Em seguida, começar a vender no mercado RiskCalc AvgTrueRange (9) Final de abril de 2002, Código TradeStation: Variáveis: LenC (5), TradeLenRC (5), RiskCalc (0) (0), RC3 (0), RC3 (0), RC4 (0), RC5 (0), RC6 (0), RC7 (0), RC8 (0), RC9 (0) RC0 (0), RC10 (0), TrendFilter (0) RC1 RateOfChange (Close Data1, LenRC) RC2 RateOfChange (Close Data3, LenRC) RC3 RateOfChange (Close Data3, LenRC) RC4 RateOfChange RateOfChange (Close Data6, LenRC) RC7 RateOfChange (Fechar Data7, LenRC) RC8 RateOfChange (Fechar Data8, LenRC) RC9 RateOfChange (Close Data9, LenRC) RC10 RateOfChange (Close Data10, LenRC) TrendFilter TrendFilter11 Em seguida, comece se MarketPosition 0 e RC1 MinList (RC1, RC2, RC3, RC4, RC5, RC6, RC6, RC7, RC1, RC2, RC6, RC7, RC8, RC9, RC10) Em seguida, comece a vender a próxima barra no mercado RiskCalc AvgTrueRange (5) End End Se TrendFilter lt TrendFilter11 Em seguida, comece se MarketPosition 0 e RC1 MinList (RC1, RC2 , RC3, RC6, RC7, RC3, RC6, RC7, RC8, RC9, RC10) Então Começar Vender Próxima Barra no Mercado RiskCalc AvgTrueRange (5) End Se MarketPosition 0 e RC1 MaxList (RC1, RC2, RC3, RC4, RC5, RC6, RC7 , RC8, RC9, RC10) Em seguida, comece a comprar Next Bar no mercado RiskCalc AvgTrueRange (5) End End Se BarsSinceEntry gt TradeLenRC Em seguida, comece ExitLong Next Bar no Mercado ExitShort Next Bar no Market End Maio de 2002, Código TradeStation: Se High lt High1 e High 1 lt High2 e High2 lt High3 e Close lt Open e Close1 lt Open1 e Close2 lt Open2 Em seguida, comprar amanhã no Alto Parar ExitLong amanhã no Baixo Stop Se MarketPosition ltgt 0 e Open Tomorrow gt High Então ExitLong Tomorrow at Open Se High gt High1 e Close Lt Close1 Then SetExitOnClose Junho de 2002, código de TradeStation: Entradas: BarsInTrade (8), ProfitExit (8), LossExit (4) Variáveis: LongStop (0), ShortStop (0), LongTarget (0), ShortTarget (0), LimitExit 0), StopExit (0) LimitExit (ProfitExit / 2 0,5) / 100 StopExit (LossExit / 5 0,2) / 100 Se MarketPosition 0 Em seguida Começar se High lt High2 e Close lt Abrir e abrir Próxima barra lt alto Em seguida, Alto Parar LongStop 1 - StopExit LongTarget 1 LimitExit End Se Baixo gt Baixo2 e Fechar gt Abrir e Abrir Próxima Barra gt Baixo Então Começar Vender Próxima Barra em Baixo Parar ShortStop 1 StopExit ShortTarget 1 - LimitExit End End Se MarketPosition 1 Em seguida, Inicie ExitLong Next Bar at EntryPrice LongStop Parar ExitLong Próxima Barra em EntryPrice LongTarget Limite End Se MarketPosition -1 Em seguida, iniciar ExitShort Próxima Barra em EntryPrice ShortStop Parar ExitShort Próxima Barra em EntryPrice ShortTarget Limite End Se BarsSinceEntry BarsInTrade1 Em seguida, iniciar ExitLong Próxima barra no mercado ExitShort Próxima barra no mercado Fim Julho 2002 , Código TradeStation: Se MarketPosition ltgt 1 e Average (Close, 9) Cruza acima da média (Close, 36) Em seguida, inicie o RiskCalc 4 AvgTrueRange (10) Compre Next Bar no Market End If Average (Close, 36) Then ExitLong Next Bar no Market Se MarketPosition 1 e EntryPrice gt 0 Então ExitLong Next Bar em EntryPrice - RiskCalc Stop Agosto 2002, Código TradeStation: Se MarketPosition ltgt -1 Vender Next Bar em Close1 2 AvgTrueRange (5) limit Se MarketPosition ltgt 1 Then Buy Próximo Bar Close1 - 2 AvgTrueRange (5) limit Se MarketPosition 1 Em seguida, Inicie ExitLong Next Bar em EntryPrice - AvgTrueRange (5) Stop ExitLong Next Bar em EntryPrice 2 AvgTrueRange (5) Limite End If MarketPosition -1 Then Begin ExitShort Next Bar (0), RiskCalc (0), MMExport (1) Condição1 Intervalo MinList (Range, Range1, Range2) , Range3) Condition2 Low lt Low1 e High lt High2 Condição3 Low gt Low1 and High gt High1 Condição4 Close lt High1 e Close gt Low1 Se MarketPosition 0 e Condition1 e Condition2 and Condition4 Em seguida, Begin Buy Next Bar em Alto Stop ProfitDistance Faixa 3 End If MarketPosition 0 e Condição1 e Condição3 e Condição4 Em seguida, Começar Vender Próxima Barra em Limite Alto ProfitDistance Faixa 3 Fim Se EntryPrice gt 0 Em seguida, Inicie ExitLong em Baixo Parar ExitLong em EntryPrice ProfitDistance Limite ExitShort em EntryPrice - ProfitDistance Limite Fim Outubro de 2002, Código TradeStation: Variáveis: EntryAvg (0), ExitAvg (0), EntryVol (0), ExitVol (0), RiskCalc (0) EntryAvg Média (Fechar, 60) ExitAvg Média (Fechar, 30) , 30) RiskCalc (EntryAvg EntryVol) - (ExitAvg - ExitVol) Comprar Contratos NumCont Próxima Barra em EntryAvg EntryVol Parar Venda Contratos NumCont Próxima Barra em EntryAvg - EntryVol Parar ExitLong Amanhã em ExitAvg - ExitVol Parar ExitShort Amanhã em ExitAvg ExitVol Parar EntryAvg MA (Close , 60) ExitAvg MA (Close, 30) EntryVol 2 StDev (Close, 60) ExitVol 1 StDev (Close, 30) RiskCalc (EntryAvg EntryVol) - (ExitAvg - ExitVol) / entrada Entryavg EntryVol STOP / BuyStopLevel EntryAvg EntryVol Comprar High gt BuyStopLevel BuyPrice Max (Open, BuyStopLevel) / e equações semelhantes para curto / ShortStopLevel EntryAvg - EntryVol Curto Baixo lt ShortStopLevel ShortPrice Min (Open, ShortStopLevel) SellStopLevel ExitAvg - ExitVol Venda Baixo lt SellStopLevel SellPrice Min (Open, SellStopLevel) CoverStopLevel ExitAvg ExitVol Cover High Gt CoverStopLevel CoverPrice Max (Open, CoverStopLevel) novembro de 2002, código da TradeStation: Condição1 CloseW (2) gt CloseW (1) e CloseW (1) gt C e C2 gt C1 e C1 gt C Condição2 CloseW (2) E CloseW (1) lt C e C2 lt C1 e C1 lt C Se Condition1 True e MarketPosition 0 Então Buy (quotGo longquot) em open Se Condition2 True e MarketPosition 0 Então Sell (quotGot shortquot) em aberto Variáveis: TrailingStop (True) BarsInTrade (8), ProfitExit (4), LossExit (1.6), LongStop (0), ShortStop (0), LongTarget (0), ShortTarget (0), Topo (0), Bottom (0) Se BarNumber 1 Em seguida, Inicie ProfitExit PerderExit / 100 LossExit LossExit / 100 LongStop 1 - LossExit LongTarget 1 ProfitExit ShortStop 1 LossExit CurtoTarget 1 - ProfitExit End Top Alto Inferior Baixo Se EntryPrice gt 0 Em seguida, Inicie Se MarketPosition 1 Em seguida, Comece Se TrailingStop True Então Inicie Top MaxList (Top, High) ExitLong (quotL-Trailquot) Next Bar at Top LongStop Stop End Else ExitLong (quotL-Stopquot) Next Bar at EntryPrice LongStop Stop ExitLong (quotL-Trgtquot) Next Bar at EntryPrice LongTarget Limit End If MarketPosition -1 Then Begin If TrailingStop True Then Begin Bottom MinList(Bottom, Low) ExitShort (quotS-Trailquot) Next Bar at Bottom ShortStop Stop End Else ExitShort (quotS-Stopquot) Next Bar at EntryPrice ShortStop Stop ExitShort (quotS-Trgtquot) Next Bar at EntryPrice ShortTarget Limit End If BarsSinceEntry BarsInTrade 1 Then Begin ExitLong (quotL-Timequot) Next Bar at Market ExitShort (quotS-Timequot) Next Bar at Market End End December 2002, TradeStation code: Variables: RandomTrigger(0), ShortVol(0), LongVol(0), ShortLookBack(10) , LongLookBack(63), ShortTrend(0), LongTrend(0), LongTrendDir(0) ShortVol AvgTrueRange(ShortLookBack) LongVol AvgTrueRange(LongLookBack) If ShortVol gt LongVol Then ShortTrend 1 Else ShortTrend -1 LongTrend Average(Close, 80) If LongTrend gt LongTrend20 Then LongTrendDir 1 Else LongTrendDir -1 If MarketPosition 0 and ShortTrend 1 and RandomTrigger 1 Then Begin If Date lt 1000401 Then Buy at Close If Date gt 1000401 Then Sell at Close End If MarketPosition ltgt 0 Then Begin ExitLong at (EntryPrice - ShortVol) Stop ExitLong at (EntryPrice 3 ShortVol) Limit ExitShort at (EntryPrice ShortVol) Stop ExitShort at (EntryPrice - 3 ShortVol) Limit If BarsSinceEntry gt ShortLookBack -1 Then Begin ExitLong on Close ExitShort on Close End End January 2003, TradeStation code: If Close gt (Average(Close, 60) StdDev(Close, 60)) Then Buy at Market If Close lt (Average(Close, 60) - StdDev(Close, 60)) Then Sell at Market February 2003, TradeStation code: Var: HistVol( 0), YestHistVol(0), DeltaHistVol(0), LookBack(0) YestHistVol HistVol HistVol StdDev(C, 30) DeltaHistVol (HistVol - YestHistVol) / HistVol If CurrentBar 1 Then LookBack 20 LookBack LookBack (1 DeltaHistVol) LookBack MaxList(LookBack , 20) LookBack MinList(LookBack, 60) If Close gt Highest(High, LookBack)1 Then Buy at Market If Close lt Lowest(Low, LookBack)1 Then Sell at Market May 2004, MetaStock code: To create the system test, open the tester under the Tools menu. Select new test and enter the following formulas in for the specific orders. Enter Long: Cross(Mov(C,10,W),Mov(C,7,W)) Close Long: Cross(Mov(C,7,W),Mov(C,10,W)) Enter Short: Cross(Mov(C,7,W),Mov(C,10,W)) Close Short: Cross(Mov(C,10,W),Mov(C,7,W)) MetaStock code for Futures Trading System Lab: To create the system test, open the tester under the Tools menu. Select new test and enter the following formulas in for the specific orders. June 2004, TradeStation code: inputs: Length( 10 ), NumDevsDn( 1.5 ) variables: LowerBand( 0 ) LowerBand BollingerBand( Low, Length, - NumDevsDn ) value1 TLNew( Date1, Time1, LowerBand1, Date, Time, LowerBand ) if CurrentBar gt 1 and Low crosses under LowerBand then Buy ( quotBBandLEquot ) next bar Market if Close gt EntryPrice then Sell this bar at Close if BarsSinceEntry 20 then sell this bar at Close To create the system test, open the tester under the Tools menu. Select new test and enter the following formulas in for the specific orders. Buy Order: LltBBandBot(L,10,S,1.5) Sell Order: bc:LltBBandBot(L,10,S,1.5) C gt ValueWhen(1,Ref(bc,-1),O) MetaStock code for Futures Trading System Lab Because this system uses an entry signal that can be true for several bars in a row, MetaStock version prior to 8.0 can not accurately count how long the trade has been active. Therefore, the formulas for this system are only valid in the MetaStock 8.0 and later. To create the system test, open the tester under the Tools menu. Select new test and enter the following formulas in for the specific orders. Buy Order: hgtref(hhv(h,55),-1) Sell Order: x: Simulation. CurrentPositionAge llt ref(llv(l,55),-1)((0.1ATR(20))x) July 2004, MetaStock code: This system is designed to run on weekly data. To create the system test, open the tester under the Tools menu. Select new test and enter the following formulas in for the specific orders. The formulas below are for version 7.2 and earlier. Enter Long: ADX(14)lt30 AND Cross(Mov(C,30,S),Mov(C,60,S)) Close Long: bc:ADX(14)lt30 AND Cross(Mov(C,30,S),Mov(C,60,S)) If(BarsSince(bc)lt10, LltRef(LLV(L,60),-1), Mov(C,30,S)ltMov(C,60,S) ) Enter Short: ADX(14)lt30 AND Cross(Mov(C,60,S),Mov(C,30,S)) Close Short: sc:ADX(14)lt30 AND Cross(Mov(C,60,S),Mov(C,30,S)) If(BarsSince(sc)lt10, HgtRef(HHV(H,60),-1), Mov(C,30,S)gtMov(C,60,S) ) For versions 8.0 and later, the formulas can be simplified a bit, and at the same time, made for accurate to the intents of the system. Below are the 8.0 formulas. Buy Order: ADX(14)lt30 AND Cross(Mov(C,30,S),Mov(C,60,S)) Sell Order: If(Simulation. CurrentPositionAgelt10, LltRef(LLV(L,60),-1), Mov(C,30,S)ltMov(C,60,S) ) Sell Short Order: ADX(14)lt30 AND Cross(Mov(C,60,S),Mov(C,30,S)) Buy to Cover Order: If(Simulation. CurrentPositionAgelt10, HgtRef(HHV(H,60),-1), Mov(C,30,S)gtMov(C,60,S) ) August 2004, MetaStock code: The following formulas were written for use in an Expert Advisor. To use them, open the expert advisor from the Tools menu. Select New and then move to the symbols tab. For each of the following formulas, click New to make a new symbol. Enter the name and the formula. Then select the graphics tab to set the symbol, color and placement desired. Name: Enter Long Formula: r:RSI(14) bc:Cross(r,75) sc:Cross(25,r) trade:If(PREV0,If(bc,1,0), If(sc OR (PREV20),0,PREV1)) trade1 Name: Enter Short Formula: r:RSI(14) bc:Cross(r,75) sc:Cross(25,r) trade:If(PREV0,If(sc,1,0), If(bc OR (PREV20),0,PREV1)) trade1 Name: Exit Long Formula: r:RSI(14) bc:Cross(r,75) sc:Cross(25,r) trade:If(PREV0,If(bc,1,0), If(sc OR (PREV20),0,PREV1)) Cross(trade0,0.5) Name: Exit Short Formula: r:RSI(14) bc:Cross(r,75) sc:Cross(25,r) trade:If(PREV0,If(sc,1,0), If(bc OR (PREV20),0,PREV1)) Cross(trade0,0.5) The same formulas listed above can be put into the columns of an exploration. Put each one into a separate formula and use the following formula for the filter: cola AND colb AND colc AND cold The formulas can also be used in a system test. No changes are required for this. June 2006, tymoraPRO software code: Program TymoraSampleIndicatorChannelMidPoint //Must have the word quotIndicatorquot in the Program Header const IndName ChnMidP var tmpHi, tmpLo, curHi, curLo, prvMidP, MidP, PS, PV, MM, LS: extended barsToUse, rColor: integer Band1: Integer function init(ChartNo, TF: Integer AssetN: String): integer //this function is called first by tymoraPRO and should initialize all your variables, etc //ChartNo 0..35, TF (timeFrame) 1Day. 71min, AssetN assetname // if this function returns anything but 0 tymoraPRO will ignore indicator for this run var i: integer cfgs: string begin // Initialization code goes here SetName(IndName) Band1 : AddBand(ChartNo) SetBandScale(Band1,0) //set scale to price SetBandStyle(Band1,2,psSolid) tmpHi : 0 tmpLo : 0 curHi : 0 curLo : 0 barsToUse : 50 rColor : clGreen cfgs : GetInitParams(ChartNo, IndName) if (cfgs ltgt ) then Begin try barsToUse : strtoint(cfgs) except barsToUse : 50 end End //if (barsToUse 0) then barsToUse : OptimalCycle(ChartNo, TF)4 //if (barsToUse 0) then barsToUse : 50 ReturnAssetInfo(AssetN, PS, PV, MM, LS) result : 0 end function main(ChartNo, TF: Integer AssetN: String istemp: boolean): integer //this function is called first by tymoraPRO and should initialize all your variables, etc //ChartNo 0..35, TF (timeFrame) 1Day. 71min, AssetN assetname // if (istemp true) this is a temporary newbar (the current uncompleted bar) //indicator can also be customized based on ChartNumber, TimeFrame, and/or AssetName var i, volup, voldn, dt, tm, ok: integer op, hi, lo, cl, pcl, useHi, useLo, useMidP: extended hifirst: boolean begin // main code goes here if (not istemp) then Begin tmpHi : 0 tmpLo : 0 if (curHi ltgt 0) then Begin ok : BarData(ChartNo, barsToUse, dt, tm, op, hi, lo, cl, volup, voldn, hifirst) if (ok -1) or CompPrc(curHi, hi, PS,) or CompPrc(curLo, lo, PS,) then curHi : 0 End if (curHi 0) then Begin curHi : 0 curLo : 0 for i : 0 to barsToUse-1 do begin BarData(ChartNo, i,dt, tm, op, hi, lo, cl, volup, voldn, hifirst) if (curHi 0) or (curHi lt hi) then curHi : hi if (curLo 0) or (curLo gt lo) then curLo : lo end End PrvMidP : MidP MidP : (curHicurLo)/2 if (MidP gt PrvMidP) then rColor : clGreen else if (MidP lt PrvMidP) then rColor : clRed BandAddXY(Band1,NewChartX(ChartNo, istemp),MidP, rColor, istemp) End if istemp then Begin if (tmpHi 0) then Begin for i : 0 to barsToUse-2 do begin BarData(ChartNo, i,dt, tm, op, hi, lo, cl, volup, voldn, hifirst) if (tmpHi 0) or (tmpHi lt hi) then tmpHi : hi if (tmpLo 0) or (tmpLo gt lo) then tmpLo : lo end End useHi : tmpHi useLo : tmpLo BarData(ChartNo,- 1,dt, tm, op, hi, lo, cl, volup, voldn, hifirst) //new temporary bar if (hi gt useHi) then useHi : hi if (lo lt useLo) then useLo : lo if ((useHiuseLo)/2 gt MidP) then rColor : clGreen else if ((useHiuseLo)/2 lt MidP) then rColor : clRed BandAddXY(Band1,NewChartX(ChartNo, istemp),(useHiuseLo)/2,rColor, istemp) End result : 0 end function afterdraw(ChartNo, TF: Integer AssetN: String FirstValueIndex, LastValueIndex: integer): integer //this routine is called in order to add any additional text or drawing on the final chart begin // additional chart annotation goes here result : 0 end function cleanup(ChartNo, TF: Integer AssetN: String): integer // perform any variable cleanup and other stuff here, return 0 if all okay begin // final cleanup code goes here (ie. freeing created bands) FreeBand(Band1) result : 0 end Copyright copy 2000-2008, Active Traderreg Magazine, Chicago, IL

No comments:

Post a Comment