Saiba mais sobre outras "Estratégias Comerciais". - página 4

 
doshur: A média de entrada é sempre boa, quando você tem um lote enorme e quer sair, pode não haver volume para você sair pelo preço que você quer.

quando a notícia é divulgada, eu me pergunto se este sistema pode sobreviver como aud nos dias de hoje

Imo, qualquer coisa pode sobreviver se o tamanho do lote for pequeno o suficiente. Se valer a pena para você é outra questão completamente diferente. Você pode apresentar um sistema que pode fazer melhor em Aud hoje em dia? Apenas como lembrete, este não é um tópico sobre sistemas lucrativos para outras pessoas. Este é um tópico onde minha intenção é que as pessoas submetam diferentes especialistas e revisem o bom e o ruim sobre a estratégia. Rentável ou não, não importa.
 

Encontrei um bug dentro da função YesLstTrdWin().

bool YesLstTrdWin(){
    if(!PositionSelect(CurSetSymbol)){return(false);}
    ulong   PosType=PositionGetInteger(POSITION_TYPE);
    ulong   PosOpTime=PositionGetInteger(POSITION_TIME);
    double  PosPrice=PositionGetDouble(POSITION_PRICE_CURRENT);
    HistorySelect(PosOpTime,TimeCurrent());
    int DealsTotal=HistoryDealsTotal();
    for(int i=DealsTotal-1; i>=0; i--){
        ulong DealTicket=HistoryDealGetTicket(i);
        ulong DealEntry=HistoryDealGetInteger(DealTicket,DEAL_ENTRY);
        if(DealEntry!=DEAL_ENTRY_IN){continue;}
        ulong DealMagic=HistoryDealGetInteger(DealTicket,DEAL_MAGIC);
        if(DealMagic!=SystemMagic1){continue;}
        string DealSymb=HistoryDealGetString(DealTicket,DEAL_SYMBOL);
        if(DealSymb!=CurSetSymbol){continue;}
        ulong  DealType=HistoryDealGetInteger(DealTicket,DEAL_TYPE);
        double DealPrice=HistoryDealGetDouble(DealTicket,DEAL_PRICE);
        if(DealType==DEAL_TYPE_BUY  && PosPrice>DealPrice){return(true);}
        if(DealType==DEAL_TYPE_SELL && PosPrice<DealPrice){return(true);} //This Line Was Left Out.
        return(false);
    }   return(false);
}

Esqueci-me do último verificador de venda, que o colocou dentro da faixa de posição.

*Em outra nota: fazer a média dentro e/ou anti-redes pode ser uma estratégia eficaz para sistemas de tendências.

 
Ubzen:

Encontrei um bug dentro da função YesLstTrdWin().

Esqueci-me do último verificador de venda, que o colocou dentro da faixa de posição.

*Em outra nota: fazer a média dentro e/ou anti-redes pode ser uma estratégia eficaz para sistemas de tendências.

Olá Ubzen,

Eu vi este tópico há algum tempo atrás e tinha a intenção de contribuir, desculpe o atraso, espero que este se torne um daqueles tópicos de mini fóruns dentro do mql5. O fato de você estar usando um sinal aleatório não otimizado para obter lucros estáveis é certamente promissor. Ainda não estudei o sinal de fato, acabei de ver o código hoje e aumentei diretamente para sua função MaxDDCurrency(). Tem uma linha que eu acho que pode ser um bug...

Caso isto

if(TempDD>MaxDDCurency){return;}

seja isto?

if(TempDD<=MaxDDCurency){return;}

Em outra nota geral. Quão confiáveis são, na sua opinião, os dados de preço no testador de estratégias, especialmente no que diz respeito ao spread?

PS: Publicarei também um dos meus em breve.

 

Você também parece estar chamando

BrkEveEquity();

Em tique. Você não deveria chamar isto de dentro da função HighestEquity(), ou seja, quando uma nova alta patrimonial é definida. Desculpe se meus comentários parecem estar fora de moda Am ainda não testou a EA em testador de estratégia, mas eu pensei que iria ter uma idéia do que você estava pensando quando escreveu isto.

 
ssn: Oi Ubzen, eu vi este tópico há um tempo atrás e tinha a intenção de contribuir, desculpe o atraso, espero que este se torne um daqueles tópicos de mini fóruns dentro do mql5. O fato de você estar usando um sinal aleatório não otimizado para obter lucros estáveis é certamente promissor. Ainda não estudei o sinal de fato, acabei de ver o código hoje e aumentei diretamente para sua função MaxDDCurrency(). Tem uma linha que eu acho que pode ser um bug...

Deveria ser isto? Em outra nota geral. Quão confiáveis são os dados de preço no testador de estratégias, especialmente no que diz respeito ao spread? PS: Publicarei também um dos meus em breve.

Função completa:

void MaxDDCurency(){
    int TempDD=AcountEquity-HighesEquity;
    if(TempDD>MaxDDCurency){return;}
    MaxDDCurency=TempDD;
}

1) Define o DrawDown máximo em moeda corrente. Esta função define a variável global com o mesmo nome para -Negativo menor saque na moeda da conta. Como seu valor é negativo, você vai querer pensar ao contrário. Exemplo Highest_Equity=10.000. Account_Equity=9.500. Eu quero o saque máximo em -500 dólares. Funciona como [9.500 - 10.000]. Então, se o saque temporário for inferior a -500, quero que isso seja registrado como o novo MaxDD.

2) Os spreads são muito mais altos no testador de estratégia do que a maioria das pessoas pagaria hoje. É minha opinião porque muitos corretores estão oferecendo sub-pips. Os dados de preço não importam tanto assim. O EA não processa em barras de um minuto, ele processa apenas na abertura da barra m1 do gráfico a que está anexado. A menos que seus dados estejam faltando a quantidade de barras m1, este método deve ser suficientemente confiável.

3) O resultado que eu recebi foi o primeiro resultado que obtive depois de montá-lo. Depois disso, fiz outros testes que não foram tão promissores. Mas mesmo com os 3 outros testes que fiz, o sistema acabou sendo ligeiramente rentável ou ligeiramente não rentável. Mas sim, o fato ainda é que um sistema aleatório e não otimizado ainda sobreviveu à crise de 2008 até 2012. Talvez a otimização de tal sistema possa ser objeto de um estudo mais aprofundado. Exemplo: sua direção pessoal, **cant fazer pior que o direito aleatório ;)

4) Claro, postar um sistema que você sempre ensinou foi interessante e qualquer coisa que o aborreça sobre esse sistema. Tentarei sugerir idéias que possam contrariar esses problemas.

 
ssn: Você também parece estar ligando para o tique. Não deveria estar chamando isto de dentro da função HighestEquity(), ou seja, quando uma nova alta patrimonial é definida. Desculpe se meus comentários parecem estar fora de moda Am ainda não testou a EA em testador de estratégia, mas eu pensei que iria ter uma idéia do que você estava pensando quando escreveu isto.

Função completa :

void BrkEveEquity(){
    if(SysMagTotCnt()!=0){return;}
    BrkEveEquity=HighesEquity;
    BrkEveEquTme=(int)TimeCurrent();
    SysCloseMode=false;
}
O Break-Even Equity que tenho usado há algum tempo. Em algum momento esta função está dentro da função Equity_High, mas acredito que me retirei daquele local há muito tempo pelas seguintes razões. 1) Se a Break-Even Equity está dentro da função Equity_High, então eu não preciso da BE, pois poderia simplesmente usar Equity_High em seu lugar. 2) Quero definir o Equivalente_Alto quando uma nova Conta_Equivalente_Alto é alcançada e não quando Sistema_Mágico_Total_Conta==0. 3) Quero definir o Break_Even quando Todos_Symbols são fechados. Isto oferece as seguintes vantagens ao negociar em tempo real. Ao fechar todas_posições, você pode sofrer algum deslize negativo. Seu novo alvo se torna Equity_High + Target$$$ em vez de Account_Balance + Target$$$ por exemplo.
 

- Sim, o DD é negativo, eu não tinha visto isso. Thx

- Acho que até mesmo os preços abertos m1 têm um lance e um pedido. Se sua entrada está em licitação, você terá que sair ao perguntar (por exemplo, se você entrou em curto-circuito). Eu fiz testes com dados mt5 e com um spread fixo personalizado, e os resultados são claramente diferentes.

- Acho que sua abordagem com o sinal aleatório é o caminho a seguir se sua entrada for baseada em dados técnicos. Se você puder manter de fora qualquer otimização que deva ser melhor... Eu acho... ;)...

- O sistema que vou postar utiliza SOM... na verdade será uma classe reutilizável. Necessidade de fazer alguns ajustes finais...

- Certo, isso está claro em BE. Agora o MinPerMinLot é uma variável fixa que você usa para definir seu volume em proporção ao tempo desde que todas as posições foram fechadas?

Documentation on MQL5: Standard Constants, Enumerations and Structures / Indicator Constants / Price Constants
Documentation on MQL5: Standard Constants, Enumerations and Structures / Indicator Constants / Price Constants
  • www.mql5.com
Standard Constants, Enumerations and Structures / Indicator Constants / Price Constants - Documentation on MQL5
 
ssn:

- Sim, o DD é negativo, eu não tinha visto isso. Thx

- Acho que até mesmo os preços abertos m1 têm um lance e um pedido. Se sua entrada está em licitação, você terá que sair ao perguntar (por exemplo, se você entrou em curto-circuito). Eu fiz testes com dados mt5 e com um spread fixo personalizado, e os resultados são claramente diferentes.

- Acho que sua abordagem com o sinal aleatório é o caminho a seguir se sua entrada for baseada em dados técnicos. Se você puder manter de fora qualquer otimização que deva ser melhor... Eu acho... ;)...

- O sistema que vou postar utiliza SOM... na verdade será uma classe reutilizável. Necessidade de fazer alguns ajustes finais...

- Certo, isso está claro em BE. Agora o MinPerMinLot é uma variável fixa que você usa para definir seu volume em proporção ao tempo desde que todas as posições foram fechadas?

1) De nada.

2) De acordo. Gostaria que pudéssemos fixar os spreads em mt5. Mas também é importante testar com spreads realistas e não enganar a si mesmo.

3) Minha experiência, com sistemas otimizados, o teste ao vivo de um mês geralmente parece totalmente diferente dos resultados esperados. Esta forma de teste geralmente produz as estatísticas esperadas durante meus testes ao vivo...., mas também geralmente morre da mesma forma que morre dentro do testador de estratégia.

4) k

5) Sim. Bastante, mas muito melhor para vê-lo como "já que account_equity era >= break-even equity". Eu tirei o Set_Break_Even_Time da função Break_Even_Equity. Estou percebendo que definir variáveis individuais com sua própria função set_function funciona muito mais reutilizável do que agrupar em outra função set_function.

Estou pensando em fazer um sistema de acompanhamento de tendência a seguir com a adição de lotes à medida que a tendência progride.

 
Ubzen:

1) Seja bem-vindo.

2) De acordo. Gostaria que pudéssemos consertar os spreads em mt5. Mas também é importante testar com spreads realistas e não enganar a si mesmo.

3) Minha experiência, com sistemas otimizados, o teste ao vivo de um mês geralmente parece totalmente diferente dos resultados esperados. Esta forma de teste geralmente produz as estatísticas esperadas durante meus testes ao vivo...., mas também geralmente morre da mesma forma que morre dentro do testador de estratégia.

4) k

5) Sim. Bastante, mas muito melhor para vê-lo como "já que account_equity era >= break-even equity". Eu tirei o Set_Break_Even_Time da função Break_Even_Equity. Estou percebendo que definir variáveis individuais com sua própria função set_function funciona muito mais reutilizável do que agrupar em outra função set_function.

Estou pensando em fazer um sistema de acompanhamento de tendência a seguir com a adição de lotes à medida que a tendência progride.

4)...
Arquivos anexados:
SignalSOM.mqh  24 kb
 
ssn: 4)...
??? Você tem o material adicional de acordo com as regras. #??? 1, #3 e #4 parecem faltar.
Razão: