[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 196

 
torah01:

comprar


int inicio()

{
OrderSend(Symbol(),OP_BUYSTOP,0.01,Ask+20*Point,3,Bid- 50*Point,Bid+50*Point);

return(0);
}

ayuda por favor...

Se ha cambiado + por -. Y revisa tus stops y takes, ahora mismo tienes stop=70 + spread, take=+30 menos spread
 
TheXpert:
Por favor, no difundas la herejía en público. Vete a empollar a otro sitio, hay mucho que hacer...

Gracias, venía a consultar con usted.
 
NickXXX:

1. Pues bien, aquí sólo se ha aplicado el doble para añadir los minutos y las horas. para que los puntos de referencia puedan ser designados como HH.MM (por ejemplo, 16. 23).

2. Mirando las últimas páginas, hay, por supuesto, sobre la fecha, pero no es exactamente lo mismo. Simplemente, emiten en formato HH.MM la hora del último pedido.



No es una buena búsqueda. Página 190, hora de envío 18.09.2011 23:03
 
nemo811:

Hola.

Por favor, ayúdenme a corregir el código.

Las dos líneas de abajo tienen fallos.

Gracias de antemano.

El programa en sí:


if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true)

MODE_HISTORY tendría más sentido

 
tara:

< 0,6, o algo así. El resto de la división es siempre menor que uno :)

¿Por qué?) El resto de 12 dividido por 10 = 2.
NickXXX:

¿Y si hay muchas variables de este tipo?

¿Es tan malo, o funcionará?

Y otra pequeña pregunta, si digamos que establezco un intervalo (por ejemplo 16.00-16.03) para que se ejecute una condición. ¿Cómo hacer que se ejecute sólo una vez, a pesar de la llegada de nuevos ticks?

Eso funciona. Y para hacerlo sólo una vez, introduzca una variable de servicio adicional, algo así

bool flag=true;

int start()
{
  if (ваше уловие по времени && flag)
  {
    тра-та-та
    flag=false;
  }
}
 
Figar0:

¿Por qué?) El resto de 12 dividido por 10 = 2.

Esto funcionará. Y para hacerlo una vez, introduce una variable de servicio adicional, así:


Sí, es un poco problemático :)
 
tara:


if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true)

MODE_HISTORY tendría más sentido.

No podría estar más de acuerdo. Por la noche, mi cerebro se ralentiza.

Sin embargo, incluso con esta corrección me he dado cuenta de que el fallo anterior (confusión entre variable mágica y número) en el script se produce cuando se vuelve a declarar la variable int MAGIC; (esta misma magia está bloqueada por alguna razón). Si se elimina int MAGIC; (extern int MAGIC = 1; restos), todo funciona como un reloj.

Una pregunta lógica ¿Por qué lo necesito? Puedes eliminar int MAGIC; y vivir tu vida en paz. PERO.

Necesito poner este código en una biblioteca. Pero si no defino int MAGIC; habrá un error.

Eso es lo que creo que debería hacer. ¿Funcionará todo esto en mi Asesor Experto? ¿Por qué esta int MAGIC; afecta al funcionamiento del script?

El guión de abajo:

extern int MAGIC = 1;
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
int OrdTicket=OrdTicket_b();
  Alert (OrdTicket);

   
//----
   return(0);
  }
//+------------------------------------------------------------------+
int OrdTicket_b()
 {
  string SMB=Symbol();
  int OrdTicket;
  int i;
  for(i=0;i<OrdersTotal();i++)
   {
    if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true)
     {
      if(OrderSymbol()==SMB)
       {
        if(OrderMagicNumber()==MAGIC || OrderMagicNumber()==777)
         {
          if(OrderType()==OP_BUY || OrderType()==OP_SELL)
           {
            OrdTicket=OrderTicket();
           }  
         }  
       }          
     }
   }
  return(OrdTicket);
 
¿En qué carpeta se guarda la configuración del servidor de correo en el terminal mt-4?
 

Compañeros, ayuda por favor... He escrito un código sencillo, pero al compilar dice que los paréntesis están desequilibrados, pero ya los he contado 300 veces: todo está en su sitio

La idea es muy sencilla: si el MACD ha estado por encima (o por debajo) de 0 durante 7 minutos o menos, se abre la posición

//+------------------------------------------------------------------+
//| MACD ^^^.mq4 ||
//| Copyright © 2011, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp.
#enlace de propiedad "http://www.metaquotes.net"

extern int TP = 100;
extern int TS = 100;
extern double lots = 0.1;
int deslizamiento = 3;
int Magia = 1;

//+------------------------------------------------------------------+
//| función de inicialización de expertos |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| función de desinicialización experta |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| función de inicio experto |
//+------------------------------------------------------------------+
int inicio()
{
//----

int total,ticket; //declarar el total y el ticket
int signal = signal_MACD(); // signal_MACD pasa el valor a la señal
AnalyzeSignal(signal); //analizar la señal
int MACD[8] = {0,1,2,3,4,5,6,7}; //crea una matriz unidimensional de MACD
MACD[0] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,7)
MACD[1] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,6);
MACD[2] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,5);
MACD[3] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,4);
MACD[4] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,3);
MACD[5] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,2);
MACD[6] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,1);
MACD[7] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,0);

total = OrdersTotal(); //el total cuenta los pedidos

int signal_MACD() //calcular la señal MACD
{
if(total<1) //si los pedidos son inferiores a 1, considere las condiciones
{
if(MACD[0]<0)
{
if(MACD[1]>0)
{
if(MACD[2]>0)
{
{ si(MACD[3]>0)
{
{ si(MACD[4]>0)
{
{ si(MACD[5]>0)
{
{ si(MACD[6]>0)
{
{ si(MACD[7]<0)
{
retorno(-100);
}
}
}
}
}
}
}
}
if(MACD[0]>0)
{
if(MACD[1]<0)
{
if(MACD[2]<0)
{
{ si(MACD[3]<0)
{
{ si(MACD[4]<0)
{
{ si(MACD[5]<0)
{
{ si(MACD[6]<0)
{
if(MACD[7]>0)
{
return(100);
}
}
}
}
}
}
}
}
}
}

void AnalizarSeñal(int señal)
{
if(señal == 100)
{
ticket = OrderSend(Symbol(),OP_BUY,Ask,slip,Bid-TS*Point,Bid+TP*Point, "buy",Magic,0,Green);
if(ticket>0)
{
OrderSelect(ticket,SELECT_BY_TICKET);
Print("abierto para comprar al precio:" OrderOpenPrice());
}
si no
{
Print("open failed due to:" GetLastError());
return(0);
}
}
if(señal == -100)
{
ticket = OrderSend(Symbol(),OP_SELL,Bid,slip,Ask+TS*Point,Ask-TP*Point, "Sell",Magic,0,Green);
if(ticket>0)
{
OrderSelect(ticket,SELECT_BY_TICKET);
Print("abierto a la venta al precio:" OrderOpenPrice());
}
si no
{
Print("open failed due to:" GetLastError());
return(0);
}
}
}

//----
return(0);
}
//+------------------------------------------------------------------+

 
p.d. ¿cómo se dibuja un guión tan bonito como el tuyo?