Participe de nossa página de fãs
Coloque um link para ele, e permita que outras pessoas também o avaliem
Avalie seu funcionamento no terminal MetaTrader 5
Coin Flip - expert para MetaTrader 5
- Publicado por:
- Vladimir Karputov
- Visualizações:
- 1389
- Avaliação:
- Publicado:
- 2018.10.04 10:57
- Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance
Ideia por: Vladimir Gribachev.
Código em MQL5 por: Vladimir Karputov.
Um EA sem usar nenhum indicador personalizado; posições são abertas de forma pseudo-aleatória. O EA pode mostrar as estatísticas atuais em dois idiomas:
O trailing modifica o Stop Loss das posições em aberto. Em caso de perda, os lotes são aumentados usando o Martingale. Como monitorar as perdas: Na OnTradeTransaction, nós obtemos uma transação DEAL_REASON_SL - o sinal do Stop Loss acionado:
//+------------------------------------------------------------------+ //| TradeTransaction function | //+------------------------------------------------------------------+ void OnTradeTransaction(const MqlTradeTransaction &trans, const MqlTradeRequest &request, const MqlTradeResult &result) { //--- get transaction type as enumeration value ENUM_TRADE_TRANSACTION_TYPE type=trans.type; //--- if transaction is result of addition of the transaction in history if(type==TRADE_TRANSACTION_DEAL_ADD) { long deal_ticket =0; long deal_order =0; long deal_time =0; long deal_time_msc =0; long deal_type =-1; long deal_entry =-1; long deal_magic =0; long deal_reason =-1; long deal_position_id =0; double deal_volume =0.0; double deal_price =0.0; double deal_commission =0.0; double deal_swap =0.0; double deal_profit =0.0; string deal_symbol =""; string deal_comment =""; string deal_external_id =""; if(HistoryDealSelect(trans.deal)) { deal_ticket =HistoryDealGetInteger(trans.deal,DEAL_TICKET); deal_order =HistoryDealGetInteger(trans.deal,DEAL_ORDER); deal_time =HistoryDealGetInteger(trans.deal,DEAL_TIME); deal_time_msc =HistoryDealGetInteger(trans.deal,DEAL_TIME_MSC); deal_type =HistoryDealGetInteger(trans.deal,DEAL_TYPE); deal_entry =HistoryDealGetInteger(trans.deal,DEAL_ENTRY); deal_magic =HistoryDealGetInteger(trans.deal,DEAL_MAGIC); deal_reason =HistoryDealGetInteger(trans.deal,DEAL_REASON); deal_position_id =HistoryDealGetInteger(trans.deal,DEAL_POSITION_ID); deal_volume =HistoryDealGetDouble(trans.deal,DEAL_VOLUME); deal_price =HistoryDealGetDouble(trans.deal,DEAL_PRICE); deal_commission =HistoryDealGetDouble(trans.deal,DEAL_COMMISSION); deal_swap =HistoryDealGetDouble(trans.deal,DEAL_SWAP); deal_profit =HistoryDealGetDouble(trans.deal,DEAL_PROFIT); deal_symbol =HistoryDealGetString(trans.deal,DEAL_SYMBOL); deal_comment =HistoryDealGetString(trans.deal,DEAL_COMMENT); deal_external_id =HistoryDealGetString(trans.deal,DEAL_EXTERNAL_ID); } else return; if(deal_symbol==m_symbol.Name() && deal_magic==m_magic) if(deal_entry==DEAL_ENTRY_OUT) { PrevBars=0; if(deal_reason==DEAL_REASON_SL && deal_commission+deal_swap+deal_profit<0.0) last_lots_sl=deal_volume; else last_lots_sl=0.0; } } }
Os parâmetros de entrada
- Stop Loss - Stop Loss;
- Take Profit - Take Profit;
- Trailing Stop - trailing;
- Trailing Step - passo do trailing;
- Lots - o tamanho do lote é definido manualmente (Se Lots maior que zero, então Risk deve ser igual a zero);
- Risk - o tamanho do lote é calculado automaticamente (se Risk está acima de zero, então Lots deve ser igual a zero);
- Martingale - razão de aumento do lote, se a posição anterior foi fechada por Stop Loss e o lucro obtido foi negativo;
- Max lots - o tamanho máximo da posição; se esse tamanho for excedido, o EA encerrará sua operação de forma anormal;
- magic number - identificador exclusivo para o EA.
Então o teste foi interrompido (o EA foi descarregado do gráfico forçadamente), uma vez que o lote de referência excedeu o parâmetro Max lots:
Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/20836
O gráfico invertido do instrumento financeiro atual, exibindo os níveis de preços de Ask e Bid.
AnchoredMomentum_x10O indicador AnchoredMomentum_x10 mostra a localização do indicador AnchoredMomentum a partir de dez períodos gráficos diferentes.
Indicador BrainTrend2 que gera alertas e envia e-mails e mensagens push quando o indicador muda de cor.
BrainTrend2Stop_HTFIndicator BrainTrend2Pare com a opção de seleção do período gráfico disponível nos parâmetros de entrada.