Ayuda a la codificación - página 705

 


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

double 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";

Ahora funciona, algo estaba mal con Trade después de TP.....

Gracias por su ayuda Mladen.

 

hola señor mladen

como podría traducir esta palabra:

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

Análisis de clústeres


respecto a


 

Sr. mladen:

¿podría hacer un MTF de ello?

saludos

Archivos adjuntos:
 

Hola queridos codificadores,

Tengo probablemente una pregunta simple, pero me atascado en el momento en:

Mi EA está abriendo y órdenes de compra y venta sin problema, pero cuando se trata de

cuando se trata de SIGNAL_CLOSEBUY o SIGNAL_CLOSESELL no cierra las órdenes.

Aquí uso un RSI_Filter como trigger para cerrar las órdenes de compra o venta.

He copiado mi código, estaría muy contento si alguien pudiera echarle un vistazo.

Gracias de antemano.

#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:

Hola queridos codificadores,

Tengo probablemente una pregunta simple, pero me atascado en el momento en:

Mi EA está abriendo y órdenes de compra y venta sin problema, pero cuando se trata de

cuando se trata de SIGNAL_CLOSEBUY o SIGNAL_CLOSESELL no cierra las órdenes.

Aquí uso un RSI_Filter como trigger para cerrar las órdenes de compra o venta.

He copiado mi código, estaría muy contento si alguien pudiera echarle un vistazo.

Gracias de antemano.

#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);
                 }

dos cuestiones que tienes que resolver antes de continuar :

  1. Primero tienes que seleccionar una orden - nunca seleccionaste la orden antes de intentar cerrarla
  2. No estás comprobando el tipo de orden que quieres cerrar - comprueba el tipo y luego, de acuerdo con el tipo de orden, toma medidas adicionales - y ajusta el precio de cierre a la oferta o a la demanda, dependiendo del tipo de orden
 
mladen:

dos cuestiones que hay que resolver antes de seguir adelante :

  1. Primero tiene que seleccionar una orden - nunca seleccionó la orden antes de intentar cerrarla
  2. No está comprobando cuál es el tipo de orden que quiere cerrar - compruebe el tipo y luego, según el tipo de orden, tome medidas adicionales - y ajuste el precio de cierre a la oferta o a la demanda, dependiendo del tipo de orden

Estimado Mladen,

muchas gracias por tus útiles sugerencias.

Si te he entendido bien tengo que implementar algo como el código de abajo

para seleccionar un "buy_ticket" el EA necesita cerrar. El código no está probado todavía, y 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:

Estimado Mladen,

muchas gracias por sus útiles sugerencias.

Si te he entendido bien tengo que implementar algo como el código de abajo

para seleccionar un "buy_ticket" el EA necesita cerrar. El código no está probado todavía, y una especie 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());
            }
         }
    

¿Tiene sólo una orden (el mismo símbolo mágico) abierta al mismo tiempo?

Si es así, entonces funcionará.

 

Estimados amigos,

El ea adjunto esta constantemente abriendo ordenes a lote fijo(es abrir todas las ordenes 0.10)

¡No puedo cambiar o controlar el valor del lote de las órdenes abiertas!


En los ajustes están disponibles los valores "Lots" y "MaximumRisk ", pero no son efectivos en los valores de los lotes de las órdenes.

¿Me pueden ayudar por favor?

Archivos adjuntos:
 

hola señor mladen

¿podría hacer una subventana vacía similar a esta imagen?

respecto a

 

Hola Mladen, he descargado tu

stepma_pdf_4_4.ex4 así como el histgrama,

copiarlos en MT4. Arrastrándolos a la ventana del gráfico

Me aparece el siguiente mensaje, por favor, ver en la imagen:

¿Podría decirme cómo puedo utilizar su indicador?


Lea


ps. lo mismo ocurrió con: averages_-_mtf__alerts_7_4.ex4 y el histograma

Archivos adjuntos:
warning.jpg  20 kb