[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 180

 
MQL414:

si (((Ask>=OrderTakeProfit()) && (OrderType() == OP_BUY)) {x=1;}

if((Oferta<=OrderTakeProfit()) && (OrderType() == OP_SELL)) {y=1;}

if(Hour()==00:00) {x=0;y=0;}

Añadir COMPRA x=0; VENTA y=0;



Muchas gracias. Parece ser lo correcto.
 

Ayuda) Cuál es el error en el código) en el tester todo está bien) y en la demo todo está muerto) ninguna posición no se abre) y ningún error) no cuántos días son ya) aquí está el código)

extern inttern Tenkan=5;
extern int dd=9;
extern int ralentización=3;
extern int kk=9;
extern inttern UrovenUp=56;
extern double TakeProfit=100;
extern double Lots=3;
extern double StopLoss=100;

int inicio()
{doble MY,precioCompra,precioCompra2,Ich,D,K,K1;
doble Cc1,C2,C3,C4;
int ticket;


MY=(Open[0] + Close[0] )/2;
Ich=((Open[iHighest(NULL, 0, MODE_OPEN, Tenkan)]) +
(Close[iLowest(NULL, 0, MODE_CLOSE, Tenkan)]))/2;

D=(iStochastic(NULL,0,kk,dd,slowing,MODE_SMA,0,MODE_SIGNAL,0))
K=(iStochastic(NULL,0,kk,dd,slowing,MODE_SMA,0,MODE_MAIN,0))
K1=(iStochastic(NULL,0,kk,dd,slowing,MODE_SMA,0,MODE_MAIN,1))
Cc1=Cierre[2] < Cierre[1];
C2=Cierre[0] > Cierre[1];
C3=K>K1;
C4=D<UrovenUp;


//Condición de precio de compra y venta//
precioCompra=MarketInfo(Symbol(),MODE_ASK);
precioCompra2=MarketInfo(Symbol(),MODE_BID);


//condición de compra//


{si (MY > Ich && Cc1 && C2 && C3 && C4)

//ticket=OrderS³; //ticket=OrderS³; //condición de compra y venta//
{ticket=OrderSend(Symbol(),OP_BUY,Lots,priceBuy,3,priceBuy2-StopLoss*Point,priceBuy2+TakeProfit*Point,
"Mi bebé",123453,0,Verde);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("Orden de compra abierta : ",OrderOpenPrice());
}
else Print("Error al abrir la orden BUY : ",GetLastError());
return(0);
}

}

}
 

Estoy tratando de entender la función iCustom().

Escribí un indicador de señal que analiza el cruce de dos MAs y da una señal 1 o 2 - compra o venta. Este es su código:

#property indicator_chart_window

extern int MA_Light=13;
extern int MA_Hard=89;

bool sig;
int Signal=-1;
double MA_L1, MA_H1, 
       MA_L2, MA_H2;


int init()
 {
   sig=true;
 }

int start()
  {
   int    counted_bars=IndicatorCounted();
   
   MA_L1=iMA(Symbol(),0,MA_Light,0,MODE_EMA,PRICE_CLOSE,1);
   MA_H1=iMA(Symbol(),0,MA_Hard,0,MODE_EMA,PRICE_CLOSE,1);
   MA_L2=iMA(Symbol(),0,MA_Light,0,MODE_EMA,PRICE_CLOSE,2);
   MA_H2=iMA(Symbol(),0,MA_Hard,0,MODE_EMA,PRICE_CLOSE,2);
   //----------------------------------------------------------------

    if(MA_L2<=MA_H2 && MA_L1>MA_H1 && sig==true)
     {
      Signal=1;
      Alert("Покупай!!! ", Signal);
      sig=false;
     }
    if(MA_L2>=MA_H2 && MA_L1<MA_H1 && sig==true)
     {
      Signal=2;
      Alert("Продавай!!! ", Signal);
      sig=false;
     }
   
   if((MA_L2<MA_H2 && MA_L1<MA_H1 && sig==false) || // чтобы сигналило один раз
      (MA_L2>MA_H2 && MA_L1>MA_H1 && sig==false))
      sig=true;  
   
   Signal=-1;
   return(0);
  }

Traté de escribir un Asesor Experto que opera por estas señales usando iCustom, pero no funciona. Sig me da un valor de 0.

extern double Lots=0.1;

double Sig;
string Symb;
bool Ans;

int init()
  {
   Symb=Symbol();

   return(0);
  }

int deinit()
  {

   return(0);
  }
int start()
  {
   Sig=iCustom(Symb,0,"experiment_iCustom_indicator",13,89,0,0);
   
   if(Sig==1)
    {
      Alert("Попытка открыть Buy...");
      Ans=OrderSend(Symb,OP_BUY,Lots,Ask,3,0,0,"",69,0);
       if(Ans==true)
        Alert("Ордер buy открыт");
       if(Ans==false)
        Alert("Произошла ошибка", GetLastError()); 
    }
   if(Sig==2)
    {
      Alert("Попытка открыть sell...");
      Ans=OrderSend(Symb,OP_SELL,Lots,Bid,3,0,0,"",69,0);
       if(Ans==true)
        Alert("Ордер sell открыт");
       if(Ans==false)
        Alert("Произошла ошибка", GetLastError()); 
    }
   
   return(0);
  }

Por favor, expliquen qué he hecho mal y qué hay que hacer correctamente.

Gracias.

 
silhouette:

Estoy tratando de entender la función iCustom().

Escribí un indicador de señal que analiza el cruce de dos MAs y da una señal 1 o 2 - compra o venta. Este es su código:

Traté de escribir un Asesor Experto que opera por estas señales usando iCustom, pero no funciona. Sig me da un valor de 0.

Por favor, expliquen qué he hecho mal y qué hay que hacer correctamente.

Gracias.

Primero, lea más detalles sobre iCustom(). Sólo funciona con topes indicadores.

No hay búferes en su indicador de señal (0), por lo tanto, no puede extraer datos de él. ¿Cómo puede saber iCustom() que necesita una variable int ordinaria del indicador?

 
Hola, por favor, ayúdenos a encontrar entre las muchas órdenes abiertas, la orden que se abrió antes de la nueva orden. ¿Cuál es el código?
 
alsu:

lectura después de reiniciar



Gracias. Lo he solucionado.

 

OrderCloseBy.

Quién puede explicar por qué se produce esta situación.

La orden superior que es una línea azul Comprar - 0,01
La segunda orden la parte inferior Vender - 0,02
En un punto donde ordersCloseBy() Flecha amarilla en el gráfico fue llamado. En el primer pedido fue -3 en el segundo +4.
Después de llamar a la función, espero que la primera se cierre en 0 y la segunda en +1.
Pero resulta que

El primer orden cerrado en 0 - línea 6. Y la segunda orden cerró a -1,10
¿De dónde salió ese -1,10? ¡Porque cerré el todo menos como el beneficio total de dos órdenes es + en +1 en el ejemplo!

 
¿Cómo puedo ocultar el trabajo de EA de las empresas de corretaje? Digamos que no tengo comentarios sobre las operaciones, pero EA escribe todos los datos predefinidos en el diario de MT4 Expert Advisors (entiendo en el servidor de las empresas de corretaje también).Pero resulta que el Asesor Experto es uno de comercio, en lugar de simplemente dibujar algo en el gráfico. 2012.06.14 20:30:36 MouseTrade 1.6.1 Entradas EURUSDm,M1: use_timer=true; delete_on_deinit=true; default_sl_level=90; default_trailing_stop=0; default_tp_level=200;use_be=true; default_be_level=50; be_offset=10;use_cl=false; default_cl_level=100; use_cp=false; cp_size_or_percent=false; cp_levels="50,100,150"; cp_lots="10,50,50"; Cómo puedo desactivar el registro, lo máximo que puedo escribir ahí es "experto"....: cargado con éxito " no entiendo o no se proporciona en absoluto?

 
Por favor, indíqueme la dirección correcta. Quiero emular el comercio en Excel. Quiero emular el comercio en Excel (en mis propias cotizaciones). ¿Cómo puedo hacer los cálculos si tengo una matriz de datos de las cotizaciones (fechas, máximos, mínimos, la historia no es importante) a la Excel calculado correctamente (por favor, utilice fórmulas) el saldo actual de la equidad. Si quiero poner una orden de Venta+Compra contra alguna cotización, pondré un lote en una celda necesaria y le añadiré el lote actual (si son opuestos, se cierran mutuamente). ¿Tal vez alguien tiene un preset?
 
Me temo que las fórmulas por sí solas no sirven en Excel. Tendrá que escribir macros. Si tienes una estructura de tabla, muéstrame. Puedo ayudarte con las macros.
Quiero a Excel como si fuera mío.