Os autores são bons! Bom trabalho, atingi o objetivo - um Expert Advisor plano e lucrativo. Agora eu o testei em nosso mercado, em particular no Si-12.18, e ele dá um bom lucro! Há muito tempo que estou procurando esse tipo de Consultor Especialista.
Há alguns comentários: 1. Leva muito tempo para desenhar, toda a lógica está no OnTick, não é um tick, você pode usar o CBarDetector com o período M1 ou M5. Eu o criei com M5 - é muito mais divertido de trabalhar. 2. Eu gostaria de ter uma largura de canal mínima e máxima na dinâmica, dependendo da volatilidade atual do mercado.
Os autores são bons! Bom trabalho, atingi o objetivo - um Expert Advisor plano e lucrativo. Agora eu o testei em nosso mercado, em particular no Si-12.18, e ele dá um bom lucro! Há muito tempo que estou procurando um Expert Advisor desse tipo.
Há alguns comentários: 1. Leva muito tempo para desenhar, toda a lógica está no OnTick, não é um tick, você pode usar o CBarDetector com o período M1 ou M5. Eu o criei com M5 - é muito mais divertido de trabalhar. 2. Eu gostaria de ter uma largura de canal mínima e máxima na dinâmica, dependendo da volatilidade atual do mercado.
Para testar rapidamente no modo visual, você precisa desativar a saída de comentários no código:
/* Comment("\nСоветник "+__FILE__+" весь в работе: ",TimeControl(), "\nДень: ",Dayof(STimeCurrent), "\nТорговый счёт: ",m_account.Login(), "\nCompany: ",m_account.Company(), "\nEquity: ",m_account.Equity(), "\nВремя по GMT: "+TimeToString(TimeGMT(),TIME_DATE|TIME_SECONDS), "\nSpread: ",m_symbol.Spread(), "\nStopLevel: ",m_symbol.StopsLevel(), "\nПлечо: ",m_account.Leverage() );*/ //--- trabalhamos somente no momento do nascimento da nova barra
Obrigado a todos que implementaram esse EA!
Estou desmontando esse EA linha por linha para adaptá-lo ao moex (afinal, ele foi projetado para forex), então tenho uma pergunta sobre o código.
//--- FreezeLevel -> para ordem pendente e modificação double freeze_level=m_symbol.FreezeLevel()*m_symbol.Point(); if(freeze_level==0.0) freeze_level=(m_symbol.Ask()-m_symbol.Bid())*3.0; freeze_level*=1.1; //--- StopsLevel -> para TakeProfit e StopLoss double stop_level=m_symbol.StopsLevel()*m_symbol.Point(); if(stop_level==0.0) stop_level=(m_symbol.Ask()-m_symbol.Bid())*3.0; stop_level*=1.1;
Por que há multiplicação, exatamente por 3 e depois por 1,1?
Obrigado a todos que implementaram esse EA!
Estou desmontando esse EA linha por linha para adaptá-lo ao moex (afinal, ele foi projetado para forex), portanto, tenho uma pergunta sobre o código.
Por que há multiplicação, exatamente por 3 e depois por 1,1?
Conheço o mercado de câmbio, conheço a bolsa de valores. Mas não sei o que diabos é moex.
Só quero entender a lógica do código e adaptá-lo à bolsa de valores
1) Observação: se eu responder a alguém, usarei o botão "Reply".
2) Para escrever o código com precisão, primeiro descubra tudo sobre os níveis SYMBOL_TRADE_STOPS_LEVEL e SYMBOL_TRADE_FREEZE_LEVEL com o suporte técnico da corretora: esses níveis são zero em todos os símbolos? O que significa "zero" - é um nível flutuante ou não há realmente nenhum nível.
1- Observação: se eu estiver respondendo a alguém, uso o botão "Responder".
2 - Para escrever o código com precisão, primeiro descubra tudo sobre os níveis SYMBOL_TRADE_STOPS_LEVEL e SYMBOL_TRADE_FREEZE_LEVEL com o suporte técnico da corretora: esses níveis são zero em todos os símbolos? O que significa "zero" - é um nível flutuante ou não há realmente nenhum nível.
Escrevi para o suporte técnico da corretora dizendo que esses níveis não são transmitidos.
Escrevi para o suporte técnico da corretora informando que esses níveis não são transmitidos.
Então, basta ignorá-los (comentar temporariamente as linhas em que esses níveis são aprendidos).
Então, simplesmente ignore-os (comente temporariamente as linhas em que esses níveis são aprendidos).
Você pode me dizer se o controle de tempo não funciona nesse EA? Há linhas no procedimento TimeControl.
if(!InpTimeControl) return(true);
Por exemplo, se o valor de InpTimeControl for falso, ele ainda retornará verdadeiro para o procedimento TimeControl?
bool TimeControl(void) { if(!InpTimeControl) return(true); MqlDateTime STimeCurrent; datetime time_current=TimeCurrent(); if(time_current==D'1970.01.01 00:00') return(false); TimeToStruct(time_current,STimeCurrent); if(InpStartHour<InpEndHour) // intervalo de tempo intradiário { if(STimeCurrent.hour>=InpStartHour && STimeCurrent.hour<InpEndHour) return(true); } else if(InpStartHour>InpEndHour) // intervalo de tempo com a transição em um dia { if(STimeCurrent.hour>=InpStartHour || STimeCurrent.hour<InpEndHour) return(true); } else return(false); //--- return(false); }
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Flat Channel:
Breve Descrição
Autor: Vladimir Karputov