Escreverei um conselheiro sem custos - página 41

 
Anton Kedo:
o tema parece ter sido abandonado.
Não, porque... às vezes lêem-no, é que pedidos como "Tenho uma ideia fixe, como um graal" raramente são seguidos. Especialmente sem um ToR.
 
Boa tarde. Tenho uma ideia interessante de como melhorar o ilean (martingale) para evitar a queda. A essência é muito longa para descrever aqui, que tentará explicar a essência da ideia no Skype.
 
Evgeniu Semenuta:
Boa tarde. Tenho uma ideia interessante de como modificar o illan (martingale) para evitar que desça a pique. A essência de uma descrição muito longa aqui, que tentará explicar a essência da ideia no Skype.
Leia o post anterior!
 

Está bem. Deixe-me tentar descrevê-lo. Digamos que o preço cai, e o illan já começou a comprar. Naturalmente, acrescenta posições para comprar aumentando o lote e assim por diante, até o preço voltar ou até o depósito ser esgotado. Gostaria de tentar a seguinte variante: quando o preço atinge 10 joelhos, a coruja coloca imediatamente 2 ordens pendentes (total de PERDAS de ordens anteriores colocadas dividido por 2) em 15 pontos.

1 conjunto de encomendas apenas pára as perdas ao nível do lucro dos 10 joelhos anteriores

2) Ordem Stop Loss no nível de lucro das 10 curvas anteriores, lucro 15

Depois temos dois resultados possíveis: o preço estabelece um stop loss, volta, fecha a grelha de 10 curvas e ficamos sem duas ordens perdidas. Ou o mercado desce persistentemente, a 2ª ordem fecha sobre o lucro e coloca outra ou duas ordens negativas da rede de 10 curvas após cerca de 10 pontos e fecha uma ou duas ordens negativas. A segunda ordem pendente puxa um stop loss para Breakeven e espera até ao fim.

De alguma forma. É difícil de explicar por palavras (. Se estiver interessado, explicarei a ideia em detalhes na tabela do Skype.

 
Evgeniu Semenuta:

Está bem. Deixe-me tentar descrevê-lo. Digamos que o preço cai, e o illan já começou a comprar. Naturalmente, acrescenta posições para comprar aumentando o lote e assim por diante, até o preço voltar ou até o depósito ser esgotado. Gostaria de tentar a seguinte variante: quando o preço atinge 10 joelhos, a coruja coloca imediatamente 2 ordens pendentes (total de PERDAS de ordens anteriores colocadas dividido por 2) em 15 pontos.

1 conjunto de encomendas apenas pára as perdas ao nível do lucro dos 10 joelhos anteriores

2) Ordem Stop Loss no nível de lucro das 10 curvas anteriores, lucro 15

Depois temos dois resultados possíveis: o preço estabelece um stop loss, volta, fecha a grelha de 10 curvas e ficamos sem duas ordens perdidas. Ou o mercado desce persistentemente, a 2ª ordem fecha sobre o lucro e coloca outra ou duas ordens negativas da rede de 10 curvas após cerca de 10 pontos e fecha uma ou duas ordens negativas. A segunda ordem pendente puxa um stop loss para Breakeven e espera até ao fim.

De alguma forma. É difícil de explicar por palavras (. Se estiver interessado, explicarei a ideia em detalhes na tabela do Skype.

A ideia habitual que conduz à ameixa inevitável! Os detalhes já não são interessantes!
 

Boa tarde, é a opção de retrabalhar a EA original considerada neste tópico ? Em caso afirmativo, abaixo está a descrição :

Tenho uma EA que precisa de ser refinada ( não fecha comércios por si só, quando a comercialização é permitida e dois parâmetros não são cumpridos : indicação da área de fecho e indicação do tamanho do volume de fecho parcial ) )ToR Descrição :

Período detempo: qualquer


Símbolos usados:

Bandas de Bollinger : período 20

aberrantes 2

aplicado para fechar



ADX: período 14

aplicado para fechar

fixar o nível em 25



Sinal de compra: durante um flat (quando o nível ADX é inferior a 25), aguardar que o preço feche no Bollinger Band inferior (parâmetro o define ponto de ordem aberto, a distância do Bollinger Band médio ao Bollinger Band inferior é definida como 100 %, 0 % é no Bollinger Band inferior, 10 % é superior, etc.), depois aguardar que o preço aumente no fecho da vela de confirmação. Abrimos a compra. Stop Loss é definido em pips nas definições. o fecho da ordem depende das opções na EA, os parâmetros das opções serão explicados mais tarde. a ordem é fechada com o parâmetro n quando toca na banda média do bollinger (o parâmetro n é definido em percentagem, define que parte do volume é fechada, em lotes este valor é arredondado para baixo, 0% significa que nada é fechado) . Stop Loss é definido ao preço de abertura da ordem, depois a ordem é totalmente fechada com o parâmetro f (a distância da banda de bollinger central à banda superior é de 100%, o parâmetro f definido como uma percentagem define o ponto onde a ordem será fechada se o preço a atingir, 0 por cento é o ponto na banda de bollinger superior 10 por cento é inferior, etc.) )/

Ordem de venda: durante um flat (quando ADX é inferior a 25), aguardar que o preço feche na banda de Bollinger superior (o especifica o ponto de entrada da ordem, a distância da banda de Bollinger média à banda superior é de 100 por cento, 0 por cento está na banda de Bollinger superior, 10 por cento está abaixo, etc.), e depois aguardar que a vela de confirmação feche a mover-se para o preço mais baixo. Abrimos a venda. Stop Loss é definido em pips nas definições .O fecho da ordem depende das opções na EA, os parâmetros das opções serão explicados mais tarde .A ordem é fechada com o parâmetro n quando toca na banda de bollinger central. (o parâmetro n é definido em percentagem, define que parte do volume está a ser fechada, em lotes este valor é arredondado para baixo, o que significa que nada está a ser fechado). (a distância da banda de bollinger média à banda inferior é considerada como 100 %, o parâmetro f definido como uma percentagem define o ponto onde a ordem será fechada se o preço a atingir, ponto 0 % na banda de bollinger inferior, 10 % superior, etc.)



Opções :

As Stop Losses podem ser definidas nas opções Expert Advisor ou nenhuma. Existem dois tipos de Stop Loss: Stop Loss regular que é dado em pips e Stop Loss dependendo do lucro esperado, ou seja, quando uma ordem é aberta a partir do preço da ordem para as Bandas de Bollinger opostas (superior ou inferior), a distância em pips é calculada. Nas opções, é fixado o coeficiente S (de 0 a 1), que é multiplicado pelo lucro potencial. Este valor é Stop Loss, isto é, se o coeficiente for 0,5, então o Stop Loss será igual a metade do lucro potencial. )

O programador que escreveu esta EA está principalmente interessado em escrever qualquer conselheiro baseado em linhas de bollinger e não está planeada qualquer modificação adicional. No anexo vejo estatísticas de estratégia sobre a história, em que se baseia o conselheiro e amostras de uma série semi-semana de conselheiros sobre VPS (fiz três mandatos com diferentes manimanagement). Abaixo está o código:

#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//--- input parameters
input int      BBPeriod=20;
input double   BBdeviation=2.0;
input int      ADX=14;
input double   AdxLevel=25;
input double      SL=2000;
input double      TP=0;
input int      Obuy=5;
input int      Osell=5;
input double   Lot=0.1;
input bool     CloseMiddle=true;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
bool buyOpen=false;
bool sellOpen=false;
double _Obuy;
double _OSell;
int TryShots= 3;
int Slippage=50;                         // Slippage
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit()
  {
   _Obuy=Obuy/100;
   _OSell=Osell/100;

   if(!IsTradeAllowed())
     {
      string message="You must allow trading!";
      Print(message);
      Comment(message);
      return INIT_FAILED;
     }

   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   static datetime prevTime;
   datetime currentTime=iTime(Symbol(),0,0);
   if(prevTime==currentTime)
     {
      return;
     }
   else
     {
      prevTime=currentTime;
     }

   double adx=iADX(NULL,0,ADX,PRICE_CLOSE,0,2);

   if(adx<AdxLevel)
     {
      double bbMain1=iBands(NULL,0,BBPeriod,BBdeviation,0,PRICE_CLOSE,0,2);
      double close=iClose(NULL,0,2);
      if(!buyOpen)
        {
         double bbDown1=iBands(NULL,0,BBPeriod,BBdeviation,0,PRICE_CLOSE,2,2);
         BuyPosition(bbDown1,bbMain1,close);
        }
      else
        {
         double currentClose=iClose(NULL,0,0);
         double currentBB=iBands(NULL,0,BBPeriod,BBdeviation,0,PRICE_CLOSE,0,0);
         if(CloseMiddle && currentClose>currentBB)
           {
            CloseOpenPos(OP_BUY);
            buyOpen=false;
           }
        }

      if(!sellOpen)
        {
         double bbUp1=iBands(NULL,0,BBPeriod,BBdeviation,0,PRICE_CLOSE,1,2);
         SellPosition(bbUp1,bbMain1,close);
        }
      else
        {
         double currentClose=iClose(NULL,0,0);
         double currentBB=iBands(NULL,0,BBPeriod,BBdeviation,0,PRICE_CLOSE,0,0);
         if(CloseMiddle && currentClose<currentBB)
           {
            CloseOpenPos(OP_SELL);
            sellOpen=false;
           }
        }
     }

  }
//+------------------------------------------------------------------+

void BuyPosition(double bbDown,double bbMain,double close)
  {
   double dif=bbMain-bbDown;
   double proc=dif *_Obuy;
   double DownProc=bbDown+proc;

   if(close<DownProc)
     {
      double openCurrent=iOpen(NULL,0,1);
      double closeCurrent=iClose(NULL,0,1);
      if(closeCurrent>openCurrent)
        {

         for(int it=0; it<TryShots; it++)
           {
            ResetLastError();
            RefreshRates();
            double sl,tp;
            if(SL!=0)
               sl=NormalizeDouble(Bid-SL*Point,Digits);
            if(TP!=0)
               tp=NormalizeDouble(Bid+TP*Point,Digits);
            Print(Ask+" sl"+sl+" tp"+tp);
            if(!OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask,Digits),Slippage,sl,tp))
              {
               if(it>=TryShots) { Print("Failed OP_BUY !"); break; }
               int err=GetLastError();
               if(err==4 || err==6 || err==8 || err==128 || err==137 || err==141 || err==146) Sleep(1000*it);
               else { Print("Failed OP_BUY !"); break; }
              }
            else
              {
               buyOpen=true;
               break;
              }

           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void SellPosition(double bbUp,double bbMain,double close)
  {
   double dif=bbUp-bbMain;
   double proc=dif*_OSell;
   double UpProc=bbUp-proc;

   if(close>UpProc)
     {
      double openCurrent=iOpen(NULL,0,1);
      double closeCurrent=iClose(NULL,0,1);
      if(closeCurrent<openCurrent)
        {
         for(int it=0; it<TryShots; it++)
           {
            ResetLastError();
            RefreshRates();
            double sl,tp;
            if(SL!=0)
               sl=NormalizeDouble(Ask+SL*Point,Digits);
            if(TP!=0)
               tp=NormalizeDouble(Ask-TP*Point,Digits);
            Print(Bid+" sl"+sl+" tp"+tp);
            if(!OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),Slippage,sl,tp))
              {
               if(it>=TryShots) { Print("Failed OP_SELL !"); break; }
               int err=GetLastError();
               if(err==4 || err==6 || err==8 || err==128 || err==137 || err==141 || err==146) Sleep(1000*it);
               else { Print("Failed OP_SELL !"); break; }
              }
            else
              {
               sellOpen=true;
               break;
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| Close open position                                              |
//+------------------------------------------------------------------+
void CloseOpenPos(int or_tp)
  {
   int i,err,k=OrdersTotal();
//---
   for(i=k-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol())
           {
            if(or_tp==OrderType())
              {
               for(int it=0; it<TryShots; it++)
                 {
                  ResetLastError();
                  RefreshRates();
                  double _price=Ask; if(or_tp==OP_BUY) _price=Bid;
                  //---
                  if(!OrderClose(OrderTicket(),OrderLots(),_price,Slippage))
                    {
                     if(it>=TryShots) { Print("Failed to close the order ",OrderTicket(),"!"); break; }
                     err=GetLastError();
                     if(err==4 || err==6 || err==8 || err==128 || err==137 || err==141 || err==146) Sleep(1000*100);
                     else { Print("Failed to close the order ",OrderTicket(),"!"); break; }
                    }
                  else break;

                 }
              }
           }
        }
     }
  }

//+------------------------------------------------------------------+

Estou a adicionar mais capturas de ecrã do terminal, a correr no VPS: capturas de ecrã "1" e "2" exemplos quando o consultor não abre negóciospor si só

Screenshot "Lock", o Conselheiro Especialista não fechou a posição de Compra por si só e abriu uma posição de Venda devido às condições de Venda aparentes.
Screenshot "ordem recebida", neste caso a ordem foi aberta correctamente.
Arquivos anexados:
Pictures.zip  775 kb
a2ji9v3g8.zip  14 kb
Statement.zip  23 kb
 

Quem tem um guião que fecha todas as encomendas com lucro total - por favor envie-nos o guião.

Agradecia que assim fosse.

 

muito tempo que trabalho nisto e há muito tempo que trabalho nisto.

De facto, poderia até tentar escrever um eu próprio se compreendesse que variáveis usa para mostrar "olho", marcadores azuis e vermelhos no ecrã!

 
baikot:

muito tempo que trabalho nisto e há muito tempo que trabalho nisto.

De facto, poderia até tentar escrever um eu próprio se compreendesse que variáveis usa para mostrar "olho", marcadores azuis e vermelhos no ecrã!

Onde está o próprio indicador?
 
Victor Nikolaev:
Onde está o próprio indicador?
No entanto, não é necessário. Só encontrará a descompilação e entrará no balneário.