Discussão sobre a implementação dos conselheiros. - página 7

 
Olá colegas, que são capazes de criar uma EA baseada em 2 indicadores que abririam e fechariam transações nos cruzamentos, veja foto, eu mesmo tentei, mas não funcionou(((((
 
katrina87:
Olá colegas, tenho um pedido muito grande para alguém que possa criar um assessor baseado em 2 indicadores que abririam e fechariam negócios nos cruzamentos, veja o quadro, eu mesmo o tentei, mas nada saiu(((((

Eu mesmo ainda não a usei. Acabei de vê-lo em uma kodobase. Confira, talvez funcione para você. E a propósito, há mais conselheiros como este na kodobase. Você pode procurar no Google o site que você está visitando. https://www.mql5.com/ru/code/12375

Советник на основе отскока от границы канала МА
Советник на основе отскока от границы канала МА
  • www.mql5.com
Для торговли используются показания индикатора Moving Average. Если цена отклонилась от линии Moving Average на определенное количество пунктов, то выставляется ордер в сторону линии Moving Average. Советник может приносить прибыль, но она получается маленькой. Также для него требуется большой депозит. На рисунке сплошная красная линия —...
 
Olá eu gostaria de escrever um robô comercial, a idéia é simples e engenhosa. Para começar, preciso de um indicador de níveis de suporte de resistência para produzir a força desses mesmos níveis, por exemplo: alto médio-baixo. alguma sugestão? obrigado a todos com antecedência.
 
paradisehell1:
Olá, eu quero escrever um robô comercial, a idéia é simples e engenhosa. Para o início, preciso de um indicador de níveis de suporte de resistência para mostrar a força desses mesmos níveis, por exemplo: alto médio-baixo. alguma sugestão? obrigado a todos com antecedência.

O Freelancing salvará o Gigante do Pensamento e Pai da Democracia Russa.

 
paradisehell1:
Olá, eu quero escrever um robô comercial, a idéia é simples e engenhosa. Por exemplo, se eu quisesse usar um robô forex, teria que procurar um indicador de nível de suporte que mostrasse a força dos níveis de suporte e resistência, como alto, médio, baixo.

Não é óbvio para mim que esta idéia é brilhante. É por isso que não há motivação. Eu não posso falar por mais ninguém, mas algo me diz que é o mesmo com eles. Você pode fazer com que pareça assim. Eles podem não ser capazes de negociar manualmente na demonstração ou de verdade, pelo menos por alguns meses. Quanto você ganhava por mês, qual era o nível de margem e de drawdown. Se os indicadores forem interessantes, você pode facilmente encontrar alguém que os escreva gratuitamente. Mas você pode procurar algo em Kodobe. E a propósito, o trabalho dos programadores é muito barato neste site.

 
Olá! Estou quase 100% certo de que minha pergunta já foi levantada muitas vezes antes. Portanto, eu ficaria muito grato se alguém pudesse me dizer onde procurar. Minha pergunta é - como implementar em meu Consultor Especialista a possibilidade de parar as negociações quando um certo lucro é alcançado? Suponha que o lucro fosse de 200 dólares - é isso, não negociamos hoje.
 
altec3:
Olá! Tenho quase 100% de certeza de que minha pergunta já foi levantada muitas vezes. Portanto, eu ficaria muito grato se alguém pudesse me dizer onde procurá-lo. Pergunta - como implementar em um EA a capacidade de interromper a comercialização quando um certo lucro é alcançado? Suponha que o lucro fosse de 200 dólares - é isso, não negociamos hoje.

Isto é para mt4, ou deveria ser para mt5?

Imediatamente antes de abrir uma posição coloque um cheque, se o lucro for maior do que para o período - saída.

void OnTick()
 {
 ...
 if(GetProfitHistoryInCurrency(_Symbol, 0, Magic) > 200) // 0 - сегодня, 1 - вчера, 2 -позавчера
  return;
 
 OrderSend(...);


Por favor, leia todo o tópico, você encontrará o código que precisa:

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

Como calcular o número de pedidos fechados na EA

Vitaly Muzichenko, 2016.04.12 10:36

//===============================================================================================
//---------------------- Возвращает профит за выбранный период с истории -----------------------+
//===============================================================================================
double GetProfitHistoryInCurrency(string symb="0", int index=-1, int mg=-1) {
 if(symb=="0") { symb=Symbol();}
 datetime DailyStartTime=iTime(symb,PERIOD_D1,index);
 double DailyProfit=0;
  for(int i=OrdersHistoryTotal()-1; i>=0; i--) {
   if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) {
    if((OrderSymbol()==symb || symb=="") && (mg<0 || OrderMagicNumber()==mg)) {
     if((OrderCloseTime()>=DailyStartTime && OrderCloseTime()<DailyStartTime+86400) || index<0)
      DailyProfit+=(OrderProfit()+OrderCommission()+OrderSwap());
 }}}
  return(DailyProfit);
 }
Использование:  GetProfitHistoryInCurrency(_Symbol, 0, Magic); // 0 - сегодня, 1 - вчера, 2 -позавчера

 
Vitaly Muzichenko:

Isto é para mt4, ou deveria ser para mt5?

Imediatamente antes de abrir uma posição coloque um cheque, se o lucro for maior do que para o período - saída.


Leia todo o tópico, o código que você precisa está lá:


Obrigado, eu definitivamente darei uma olhada! Sim, e o código é necessário para o MT5.
 

Boa tarde!

Estou tentando escrever uma função que determina o lucro para o dia atual:

//+------------------------------------------------------------------+
//|Функция возвращает прибыль за текущие сутки                       |
//+------------------------------------------------------------------+
double Day_Profit()
  {
//--Запрашиваем историю сделок за последнии сутки
   HistorySelect(TimeCurrent()-PeriodSeconds(PERIOD_D1),TimeCurrent());
   uint     total       =HistoryDealsTotal();   // количество сделок в истории
   ulong    ticket      =0;                     // тикет сделки в истории
   long     type        =0;                     // тип сделки
   double   profit      =0.0;                   // финансовый результат сделки
   double   commission  =0.0;                   // коммиссия по сделке
   double   DayProfit   =0.0;                   // прибыль за текущие сутки
//--- for all deals
   for(uint i=0; i<total; i++)
     {
      if((ticket=HistoryDealGetTicket(i))>0)       //--- если имеются сделки, то...
        {
         profit      =HistoryDealGetDouble(ticket,DEAL_PROFIT);
         commission  =HistoryDealGetDouble(ticket,DEAL_COMMISSION);
         if(HistoryDealGetInteger(ticket,DEAL_TYPE)!=DEAL_TYPE_BALANCE)
           {
            DayProfit+=(profit+commission);
           }
        }
     }
   return (DayProfit);
  }
//+------------------------------------------------------------------+

Você pode me dizer como usar a função

HistorySelect (datetime from_date,datetime to_date)
para especificar o período a partir do dia atual. É claro que fim do período até_data=TimeCurrent(), como especificar corretamente o início do período desde_data, de modo que comece a partir de 00h:00m:00c do dia atual?
 
altec3:
Boa tarde, poderia me dizer como especificar o período a partir do dia atual na função? É claro que fim do período até_data=TimeCurrent(), como especificar corretamente o início do período desde_data, então ele começará a partir de 00h:00m:00 do dia atual?

Assumindo que houve pelo menos um tick hoje, o algoritmo é o seguinte: a hora atual é enviada para a estruturaMqlDateTime. Em seguida, ajuste as horas, minutos e segundos para zero nesta estrutura. Resta converter a estrutura editada em um tempo:

//+------------------------------------------------------------------+
//|                                                            1.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   MqlDateTime STimeCurrent;
   TimeToStruct(TimeCurrent(),STimeCurrent);
   STimeCurrent.hour=0;
   STimeCurrent.min=0;
   STimeCurrent.sec=0;
   datetime start_day=StructToTime(STimeCurrent);
   Print(start_day);
  }
//+------------------------------------------------------------------+


Resultado:

2020.09.03 00:00:00
Arquivos anexados:
1.mq5  3 kb
Razão: