Escreverei um conselheiro sem custos - página 157

 
Ivan Butko #:
O anterior, infelizmente, não cabia. Procurei na base de códigos e encontrei quase exactamente o que preciso

https://www.mql5.com/ru/code/10236

//+------------------------------------------------------------------+
//|                                                    i`lbeback.mq4 |
//|                                Copyright ? 2011, AM2 && Tiburond |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright ? 2011, AM2 && Tiburond"
#property link      "http://www.forexsystems.biz"

#define MAGIC  20110406

extern int  StopLoss    = 1300;   //???????? ??????
extern int  StartHour   = 21;     //??? ?????? ????????(???????????? ?????)
extern int  Distance    = 250;    //?????????? ?? ???? ??? ????????? ??????
extern int  Step        = 50;     //??? ????????? ???????
extern int  Count       = 4;      //?????????? ??????????????? ???????
extern int  Expiration  = 4;      //????? ????????? ??????
extern double  Lots     = 1;      //???
extern bool  MM         = true;   //?????????? ???????????????
extern double  TSP      = 5;      //????
extern bool  BU         = true;   //?????????? ?????? ??????? ? ????????? ? ??????? ???
extern int  BUHour      = 2;      //??? ????? ??????? ??????? ??????? ? ?????????

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int  init()
  {
//----
  
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int  deinit()
  {
//----
  
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int  start()
  {
   int  b=0,s=0,res;
   datetime  expiration = TimeCurrent()+3600*Expiration;
   double  BuyPrice=fND(Open[0]-Distance*Point);
   double  SellPrice=fND(Open[0]+Distance*Point);  
   for (int  i=OrdersTotal()-1;i>=0;i--)
     {
      if (OrderSelect(i, SELECT_BY_POS))
        {  
         if (OrderSymbol()!=Symbol() || OrderMagicNumber()!=MAGIC) continue;
         if (OrderType()==OP_BUYLIMIT) b++;
         if (OrderType()==OP_SELLLIMIT) s++;
        }  
     }
   if (Hour()>BUHour && Hour()<StartHour && AllProfit()>0) ClosePositions();
   if (Hour()>BUHour && DayOfWeek() == 5) ClosePositions();  
   if (Hour()==StartHour && b<1 && DayOfWeek() != 5)
   for(i=1;i<=Count;i++)
    {
     {              
      res=OrderSend(Symbol(),OP_BUYLIMIT,fLots(),fND(Ask-(Distance*Point+i*Step*Point)),3,fND(BuyPrice-StopLoss*Point),fND(Open[0]),"",MAGIC,expiration,Blue);      
      Sleep(3000);
      if(res<0)
         {
            Print("??????: ",GetLastError());
         } else {
            RefreshRates();
         }    
     }
    }
        
   if (Hour()==StartHour && s<1 && DayOfWeek() != 5)
   for(i=1;i<=Count;i++)
    {  
     {              
      res=OrderSend(Symbol(),OP_SELLLIMIT,fLots(),fND(Bid+(Distance*Point+i*Step*Point)),3,fND(SellPrice+StopLoss*Point),fND(Open[0]),"",MAGIC,expiration,Red );
      Sleep(3000);
      if(res<0)
         {
            Print("??????: ",GetLastError());
         } else {
            RefreshRates();
         }    
     }
    }    
//----  
   return(0);
  }
//+------------------------------------------------------------------+
double  fND(double  d, int  n=-1)
  {  
   if (n<0) return(NormalizeDouble(d, Digits));
   return(NormalizeDouble(d, n));
  }
//+------------------------------------------------------------------+
double  fLots()
  {
   double  lot=Lots;
   double  lot_min =MarketInfo( Symbol(), MODE_MINLOT  );
   double  lot_max =MarketInfo( Symbol(), MODE_MAXLOT  );
   if (MM)
     {
      double  lot_step =MarketInfo( Symbol(), MODE_LOTSTEP );
      double  lotcost =MarketInfo( Symbol(), MODE_TICKVALUE );      
      double  dollarsPerPip=0.0;

      lot = AccountFreeMargin()*TSP/100.0;
      dollarsPerPip=lot/StopLoss;
      lot=fND(dollarsPerPip/lotcost, 2);      
      lot=fND(lot/lot_step, 0) * lot_step;
     }
   if (lot<lot_min) lot=lot_min;
   if (lot>lot_max) lot=lot_max;
   return(lot);
  }
//+------------------------------------------------------------------+
void  ClosePositions()
  {
   if(BU)
   for (int  i=OrdersTotal()-1;i>=0;i--)
    {
      OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() == Symbol())
       {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC)
          {
            if (OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid, 3, Blue);
            if (OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), Ask, 3, Red);
          }
         Sleep(1000);
      }
    }
  }
//+------------------------------------------------------------------+
double  AllProfit()
  {
   double  Profit = 0;
   for (int  i=OrdersTotal()-1;i>=0;i--)
    {
      OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() != Symbol() || OrderMagicNumber() != MAGIC) continue;
      if (OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC)
         if (OrderType() == OP_BUY || OrderType() == OP_SELL) Profit += OrderProfit();
    }
   return (Profit);
  }
//+------------------------------------------------------------------+


Por favor, ajude-me a fazer correcções. Esta EA não fecha à força as ordens abertas. Gostaria que, juntamente com o tempo de fixação de limites, pudéssemos também definir a hora do seu fecho forçado.
Precisamos de TP e trall para os optimizar. Um centro comercial, para que todos os limites fossem fechados de uma forma pequena, mas que recolhessem o ruído da noite.

Introduziu a supressão de encomendas, o tempo, a definição de paragens e o arrasto (tirada aqui https://www.mql5.com/ru/code/32662, a mesma explicação aqui).

Trailing 2SL
Trailing 2SL
  • www.mql5.com
Трал с двумя уровнями стопа. И с установкой ТП
Arquivos anexados:
Limit.mq4  25 kb
 
Como descobrir o id
 
Анна Калмыкова #:
Como se descobre o id
O id de quê?
 
Como levantar dinheiro.
 
Tirá-lo de onde?
 
Ajude-me a escrever um robô comercial da EA. O primeiro lote compra 0,01 ou menos. Se forem tirados dois pontos, então é fechado e novamente compra 0,01 dois pontos. Se não, então o lote é sempre duplicado e vai ao contrário de vender 0,02 por dois ou três pontos, dependendo das regras de negociação por ponto. Se não for tomado, comprar 0,04 e fechado, se não for tomado 0,08 e assim sucessivamente até oito vezes, ou seja, até 0,128 lote. Mudamos sempre a direcção. Se foi tomada, mais uma vez 0,01. ***
 
Escreve EAs por uma taxa e sem discussão no fórum?
 
Lydvik-kaskad #:
Escreve EAs por uma taxa e sem discussão no fórum?

Serviço de escrita pago Freelance. Siga o link e leia o material de referência.

Торговые приложения для MetaTrader 5 на заказ
Торговые приложения для MetaTrader 5 на заказ
  • 2021.10.02
  • www.mql5.com
Самый большой фриланс c разработчиками программ на MQL5
 

Olá, por favor ajudem.

Preciso de uma EA que procure e mostre situações no gráfico como nas imagens de ecrã.

Os cálculos utilizam um parabólico SAR normal e um canal deregressão linear normal.

O indicador mostra as situações procuradas para as últimas 1000 barras.

As ondas descendentes do parabólico
O indicador calcula os parâmetros após a mudança do parabólico.
Para os cálculos, tomamos as duas ondas do parabólico que se seguem uma à outra,
Neste caso, as ondas descendentes (pontos acima do preço).
1) Cada onda tem o ponto mais baixo, a onda 1 tem o ponto A, a onda 2 tem o ponto B.
2) O nível do ponto B deve ser mais elevado do que o nível do ponto A.
3) Estes pontos estão ligados por um canal de regressão e o canal deve ser dirigido para baixo - este é o
a formação desejada.

Ondas ascendentes parabólicas
O indicador calcula os parâmetros após a mudança do parabólico.
Para os cálculos, são tomadas duas ondas de um parabólico que se seguem uma à outra,
Neste caso, a subida das ondas (pontos abaixo do preço).
1) O ponto mais alto de cada onda é tomado, a onda 1 tem o ponto A, a onda 2 tem o ponto B.
2) O nível do ponto B deve ser inferior ao nível do ponto A.
3) Estes pontos estão ligados por um canal de regressão e o canal deve ser dirigido para cima - este é o

a formação desejada.


Seria muito apreciado. Posso partilhar as entradas.

Arquivos anexados:
yxc3e4dpz2.png  64 kb
4cprtquce6.png  62 kb
[Excluído]  
var58 #:

Ficar-lhe-ia muito grato. Posso partilhar as entradas.

Porquê fazer troça do ParabolicSAR - mostra as entradas e saídas na perfeição como está.

Captura de ecrã 2021-10-05 114315