Ajuda na codificação - página 705

 


double BU1=iMA(Symbol(),0,ShortSma,0,MODE_SMA,PRICE_CLOSE,i+1);

duplo BL1=iMA(Symbol(),0,LongSma,0,MODE_SMA,PRICE_CLOSE,i);

string SBUY="false";string SSEL="false";

if(BU1<Close[1]&&BL1<Close[1])SBUY="true";if(BL1>Close[1]&&BU1>Close[1])SSEL="true";

Funciona agora, algo estava errado com o Comércio após TP.....

Obrigado por sua ajuda Mladen.

 

olá Sr. mladen

como poderia traduzir esta palavra:

http://forexsystemsru.com/1075962-post327.html

Análise de cluster


respeito


 

mr mladen:

você poderia fazer MTF dele

melhor consideração

Arquivos anexados:
 

Olá, caros codificadores,

Provavelmente tenho uma pergunta simples, mas no momento fiquei preso:

Minha EA está abrindo e comprando e vendendo pedidos sem problemas, mas quando chega

para SIGNAL_CLOSEBUY ou SIGNAL_CLOSESELL não fecha os pedidos.

Aqui eu uso um RSI_Filter como gatilho para fechar as ordens de compra ou venda.

Eu copiei meu código, eu ficaria muito feliz se alguém pudesse dar uma olhada.

Obrigado de antemão!

#define SIGNAL_NONE      0
#define SIGNAL_BUY       1
#define SIGNAL_SELL      2
#define SIGNAL_CLOSEBUY  3
#define SIGNAL_CLOSESELL 4

extern int    MaxShortTrades   = 1;
extern int    MaxLongTrades    = 1;
int           Order            = SIGNAL_NONE;

// RSI Filter
double RSIfilter=iRSI(Symbol(),0,RSIPeriod,PRICE_CLOSE,BarShift);

// Trade Signal Indicator
double NLD1,NLD2;
      NLD1 = iCustom(NULL,0,"indicator",0,Length,0,0,1,0,0,0,1);
      NLD2 = iCustom(NULL,0,"indicator",0,Length,0,0,1,0,0,0,2);        

// Amount of long / short trades      
int longs  = 0;
int shorts = 0;
double j;
      
      for(j=OrdersTotal()-1;j>=0; j--)
        {
         if(OrderType()==OP_BUY)  longs++;  // Check # of long trades.
         if(OrderType()==OP_SELL) shorts++; // Check # of short trades
        }
                
// place orders
if(longs < MaxLongTrades && NLD1 > NLD2 && RSIfilter>55) Order  = SIGNAL_BUY;        
if(shorts < MaxShortTrades && NLD1 < NLD2 && RSIfilter<45) Order = SIGNAL_SELL;
   

// Signal Begin(Exit Buy)
if (RSIfilter<50) Order=SIGNAL_CLOSEBUY;

if(Order==SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars!=BarCount))))
              {
               dummyResult=OrderClose(OrderTicket(),OrderLots(),Bid,Slippage*PipMultiplier,MediumSeaGreen);
               if(EachTickMode) TickCheck = True;
               if(!EachTickMode) BarCount = Bars;
               return(0);
              }

// Signal Begin(Exit Sell)                                                              
if (RSIfilter>50) Order=SIGNAL_CLOSESELL;

if(Order==SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars!=BarCount))))
                 {
                  dummyResult=OrderClose(OrderTicket(),OrderLots(),Ask,Slippage*PipMultiplier,DarkOrange);
                  if(EachTickMode) TickCheck = True;
                  if(!EachTickMode) BarCount = Bars;
                  return(0);
                 }
 
tfi_markets:

Olá, caros codificadores,

Provavelmente tenho uma pergunta simples, mas no momento fiquei preso:

Minha EA está abrindo e comprando e vendendo pedidos sem problemas, mas quando chega

para SIGNAL_CLOSEBUY ou SIGNAL_CLOSESELL não fecha os pedidos.

Aqui eu uso um RSI_Filter como gatilho para fechar as ordens de compra ou venda.

Eu copiei meu código, eu ficaria muito feliz se alguém pudesse dar uma olhada.

Obrigado de antemão!

#define SIGNAL_NONE      0
#define SIGNAL_BUY       1
#define SIGNAL_SELL      2
#define SIGNAL_CLOSEBUY  3
#define SIGNAL_CLOSESELL 4

extern int    MaxShortTrades   = 1;
extern int    MaxLongTrades    = 1;
int           Order            = SIGNAL_NONE;

// RSI Filter
double RSIfilter=iRSI(Symbol(),0,RSIPeriod,PRICE_CLOSE,BarShift);

// Trade Signal Indicator
double NLD1,NLD2;
      NLD1 = iCustom(NULL,0,"indicator",0,Length,0,0,1,0,0,0,1);
      NLD2 = iCustom(NULL,0,"indicator",0,Length,0,0,1,0,0,0,2);        

// Amount of long / short trades      
int longs  = 0;
int shorts = 0;
double j;
      
      for(j=OrdersTotal()-1;j>=0; j--)
        {
         if(OrderType()==OP_BUY)  longs++;  // Check # of long trades.
         if(OrderType()==OP_SELL) shorts++; // Check # of short trades
        }
                
// place orders
if(longs < MaxLongTrades && NLD1 > NLD2 && RSIfilter>55) Order  = SIGNAL_BUY;        
if(shorts < MaxShortTrades && NLD1 < NLD2 && RSIfilter<45) Order = SIGNAL_SELL;
   

// Signal Begin(Exit Buy)
if (RSIfilter<50) Order=SIGNAL_CLOSEBUY;

if(Order==SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars!=BarCount))))
              {
               dummyResult=OrderClose(OrderTicket(),OrderLots(),Bid,Slippage*PipMultiplier,MediumSeaGreen);
               if(EachTickMode) TickCheck = True;
               if(!EachTickMode) BarCount = Bars;
               return(0);
              }

// Signal Begin(Exit Sell)                                                              
if (RSIfilter>50) Order=SIGNAL_CLOSESELL;

if(Order==SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars!=BarCount))))
                 {
                  dummyResult=OrderClose(OrderTicket(),OrderLots(),Ask,Slippage*PipMultiplier,DarkOrange);
                  if(EachTickMode) TickCheck = True;
                  if(!EachTickMode) BarCount = Bars;
                  return(0);
                 }

duas questões que você tem que resolver antes de prosseguir :

  1. Primeiro você tem que selecionar uma ordem - você nunca selecionou a ordem antes de tentar fechá-la
  2. Você não está verificando qual é o tipo de pedido que você quer fechar - verifique o tipo e então, de acordo com o tipo de pedido, tome outras medidas - e ajuste o preço de fechamento para licitar ou perguntar, dopending sobre o tipo de pedido
 
mladen:

duas questões que você tem que resolver antes de prosseguir :

  1. Primeiro você tem que selecionar um pedido - você nunca selecionou o pedido antes de tentar fechá-lo
  2. Você não está verificando qual é o tipo de pedido que você quer fechar - verifique o tipo e então, de acordo com o tipo de pedido, tome outras medidas - e ajuste o preço de fechamento para licitar ou perguntar, dopending sobre o tipo de pedido

Prezado Mladen,

muito obrigado por suas sugestões úteis.

Se eu o entendi corretamente, preciso implementar algo como o código abaixo

para selecionar um "buy_ticket", a EA precisa fechar. O código ainda não foi testado, e tipo de "pseudo-estado".

int buy_ticket=0;
int sell_ticket=0;
int ticket;

// Iterate through tickets
for(int i=OrdersTotal()-1; i>=0; i--)
    {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol())
         {
           if(OrderType()== OP_BUY)
              buy_ticket=OrderTicket();
            else
            if(OrderType() == OP_SELL)
               sell_ticket=OrderTicket();
           }
        }

// Close Ticket with trigger
if (RSIfilter<50) Order=SIGNAL_CLOSEBUY;

if (RSIfilter>50) Order=SIGNAL_CLOSESELL; 

                
if(Order==CLOSE_BUY && buy_ticket!=0)
         {
         if(OrderSelect(buy_ticket,SELECT_BY_TICKET))
            {
            if(!OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,clrDodgerBlue))
               Print("Error closing Buy #",(string)OrderTicket()," Error code ",(string)GetLastError());
            }
         }
      else
      if(Order==CLOSE_SELL && sell_ticket!=0)
         {
         if(OrderSelect(sell_ticket,SELECT_BY_TICKET))
            {
            if(!OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,clrDodgerBlue))
               Print("Error closing Sell #",(string)OrderTicket()," Error code ",(string)GetLastError());
            }
         }
    
 
tfi_markets:

Prezado Mladen,

muito obrigado por suas sugestões úteis.

Se eu o entendi corretamente, preciso implementar algo como o código abaixo

para selecionar um "buy_ticket", a EA precisa fechar. O código ainda não foi testado, e tipo de "pseudo-estado".

int buy_ticket=0;
int sell_ticket=0;
int ticket;

// Iterate through tickets
for(int i=OrdersTotal()-1; i>=0; i--)
    {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol())
         {
           if(OrderType()== OP_BUY)
              buy_ticket=OrderTicket();
            else
            if(OrderType() == OP_SELL)
               sell_ticket=OrderTicket();
           }
        }

// Close Ticket with trigger
if (RSIfilter<50) Order=SIGNAL_CLOSEBUY;

if (RSIfilter>50) Order=SIGNAL_CLOSESELL; 

                
if(Order==CLOSE_BUY && buy_ticket!=0)
         {
         if(OrderSelect(buy_ticket,SELECT_BY_TICKET))
            {
            if(!OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,clrDodgerBlue))
               Print("Error closing Buy #",(string)OrderTicket()," Error code ",(string)GetLastError());
            }
         }
      else
      if(Order==CLOSE_SELL && sell_ticket!=0)
         {
         if(OrderSelect(sell_ticket,SELECT_BY_TICKET))
            {
            if(!OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,clrDodgerBlue))
               Print("Error closing Sell #",(string)OrderTicket()," Error code ",(string)GetLastError());
            }
         }
    

Você tem apenas 1 ordem (o mesmo símbolo mágico, quero dizer) aberta ao mesmo tempo?

Se sim, então vai funcionar.

 

Caros amigos,

Os pedidos em anexo são constantemente abertos para lotes fixos(estão abertos todos os pedidos 0,10)

Eu não mudo ou controlo o valor do lote de pedidos abertos!!


Disponível nas configurações "Lotes" e "Risco Máximo" , mas não são efetivos nos valores do lote de pedidos!

CAn você me ajuda, por favor?

Arquivos anexados:
 

olá Sr. mladen

você poderia fazer uma sub janela vazia semelhante a esta foto

respeito

 

Oi Mladen, eu fiz o download de seu

stepma_pdf_4_4.ex4, bem como o histórico,

os copiou para o MT4. Arrastando-as para a janela do gráfico

Eu recebo a seguinte mensagem, veja na imagem:

Você poderia me dizer como posso usar seu indicador?


Lea


ps. o mesmo aconteceu com: médias_-_mtf__alerts_7_4.ex4 e histograma

Arquivos anexados:
warning.jpg  20 kb
Razão: