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

 
Vinin >> :

Algo así me ha funcionado.

>> MUCHAS GRACIAS.

 

¡Buenas tardes!

Hoy he hecho una demostración en Alpari y me he sorprendido con cinco decimales. Tuve que rehacer el EA, añadir un diez.

Si no es difícil explicar la diferencia entre cinco y cuatro decimales o darme un enlace donde se pueda leer sobre ello.

 
gvi2504 >> :

¡Buenas tardes!

Hoy he hecho una demostración en Alpari y me he sorprendido con cinco decimales. Tuve que rehacer el Asesor Experto, añadir un diez.

Si no te importa explicar la diferencia entre cinco y cuatro dígitos, o darme un enlace donde pueda leer sobre ello.


Esto es lo que yo hago - pongo start() al principio (probablemente mejor en init() ?):

// ```````````````````````````````
   double PointX = 0;
   if(Digits==5 || Digits==3) {
      PointX = Point * 10;
   }
   if(Digits==4 || Digits==2) {
      PointX = Point;
   }
// ```````````````````````````````


Y entonces uso "PuntoX" en lugar de "Punto".

 
chief2000 >> :


Esto es lo que hago - pongo start() al principio (probablemente mejor en init() ?):


Y entonces uso "PuntoX" en lugar de "Punto".





Muchas gracias.

 
Shniperson писал(а) >>
>> ¿Cómo hacer que los valores de las barras en H1 se tengan en cuenta cuando se opera en H4? Por ejemplo, si (......&& Close[0](barra H1)>High[1](barra H1) ???????????

aproximadamente aquí... sin embargo este es un ejemplo de código de trabajo para macd & ) || ( este lugar subrayado combina la condición del código específico

indicador>0 && indicador<=Signalindicator && indicador>Signalindicator une H4 con H1 en el sentido de que la situación en H4 y en H1 es la misma para MAKD (o no - depende de <=0 (menor o igual a cero / posible a MAKD) además &&(simultáneamente) permite complicar la relación)

MacdCurrent=indicador_MAIN,0);
MacdPrevious=indicador_MAIN,1);
SignalCurrent=indicador_SIGNAL,0);
Indicador SignalPrevious=SIGNAL,1);

total=Total de pedidos();
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol()) // comprobar el símbolo
{
if(OrderType()==OP_BUY) // se abre la posición larga
{
if((indicador>0 && indicador<=indicador de señal && indicador>indicador de señal) || ( indicador<=0 && indicador>0))
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // cerrar posición

Pero este código es de otra persona y no puedo cambiarlo yo mismo, eso sí.

 
JEKA писал(а) >>
Hola, creo que la pregunta es más para programadores avanzados que para principiantes como yo, aunque mi idea será útil para ambos. Así que la esencia de la pregunta, ¿es posible escribir un indicador o asesor basado en dos indicadores? V-TBv6.ex4, 5_ZZ_Semafor.ex4 Me gustaría escribirlo yo mismo, pero k sozhily no poseo tales conocimientos, y me gustaría pedir ayuda a los que también interesito esta idea o a los que tienen los conocimientos necesarios en esta área.

hay un asesor comercial en ma y mcd.

Ma para abrir, Maqd para cerrar

Ma se utilizan simplemente en la apertura en el código de la Posición de Apertura (en los scripts que vienen junto con el terminal son Ma y Poppy), un bloque en el que un indicador (Ma) va al Cierre (Poppy).

si se requieren dos indicadores a la vez, se declaran dos indicadores en el bloque requerido y sus valores se combinan mediante

void CheckForClose()
{
double MacdCurrent, MacdPrevious, SignalCurrent;
doble SeñalAnterior;
int cnt, ticket, total;

MacdCurrent=iMACD(NULL,0,MACD_FastEMA,MACD_SlowEMA,MACD_SMA,PRICE_CLOSE,MODE_MAIN,0);
MacdPrevious=iMACD(NULL,0,MACD_FastEMA,MACD_SlowEMA,MACD_SMA,PRICE_CLOSE,MODE_MAIN,1);
SignalCurrent=iMACD(NULL,0,MACD_FastEMA,MACD_SlowEMA,MACD_SMA,PRICE_CLOSE,MODE_SIGNAL,0);
SignalPrevious=iMACD(NULL,0,MACD_FastEMA,MACD_SlowEMA,MACD_SMA,PRICE_CLOSE,MODE_SIGNAL,1);

total=Total de pedidos();
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol()) // comprobar el símbolo
{
if(OrderType()==OP_BUY) // se abre la posición larga
{
if((*>0 && *<=* && *>* ) | (*<=0 && *>0))
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // cerrar posición
tek_mode=1;
return(0); // salir
}

}
si no // pasar a la posición corta
{
if((Macd*<0 && Macd*>=* && *<* ) || (*>=0 && *<0))
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // cerrar posición
tek_mode=-1;
return(0); // salir
}
}
}
}
}
//+------------------------------------------------------------------+

donde tek_mode=-1; se utiliza para cortar el valor de la repetición instantánea. || y && permiten utilizar dos grupos de condiciones como uno solo.

 

¿Puedes darme una pista?

¿Cómo llevar los ticks de MT4 a Matlab desde mi propia DLL de forma inteligente y lo más racional posible?

Probablemente alguien haya hecho algo así.

De MT en términos generales:

empezar()

{

fMyDll(Bid); // pasar la oferta a la función de mi dll con cada nuevo tick

}

¿cuál es el método de intercambio?

 
Cuando se prueban estrategias, ¿hay un límite en el número de combinaciones de parámetros? Es decir, el número de pases del probador.
 
Se ha modificado el indicador VSI. Está un poco subdesarrollado. ¿Puede alguien decirme dónde está el error?
Archivos adjuntos:
vsi_twin.mq4  4 kb
 
nikost писал(а) >>
Se ha modificado el indicador VSI. Está un poco subdesarrollado. ¿Puede alguien decirme dónde está el error?
Archivos adjuntos: