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

 
en algún lugar de este sitio hace mucho tiempo me encontré con un enlace a un sitio donde usted puede subir su robot, también introduzca su nombre de usuario, contraseña, servidor y el comercio cuando mi copm es off.... ¿alguien se acuerda de este sitio?
 
jobber:
en algún lugar de este sitio hace mucho tiempo me encontré con un enlace a un sitio donde se puede cargar su robot, así como especificar el nombre de usuario, contraseña, servidor y que el comercio cuando mi copm es off.... ¿alguien se acuerda de este sitio?

Puedes introducir VPS en el motor de búsqueda, no sé lo que significa literalmente, pero podría ser un escritorio virtual para los comerciantes.
 
splxgf:

LazarevDenis

El recuento inicial es de 59 barras, lo cual es incorrecto. Puede haber huecos en los minutos y la última barra de horas puede contener menos minutos.

Debe tomar la hora de apertura y cierre de la barra horaria (Hora[i]). Utilice este tiempo para calcular los desplazamientos de los minutos de iBarShift, y luego calcule el máximo dentro de este rango de desplazamientos.

Por cierto, ¿qué debería mostrar el indicador en un periodo de un minuto?

Aunque, no importa para el Asesor Experto, solo necesita obtener el último valor en barras de un minuto, si el número es positivo el precio sube, si es negativo baja, al devolver el número modulo muestra la fuerza del movimiento.


en cuanto al número de barras - su 60 cuenta desde cero y no hay 60 minutos ya que este es el minuto cero de la nueva hora, o estoy equivocado

Tengo dudas sobre la barra de la última hora, pero espero que al no haber barras minúsculas, su volumen sea igual a cero y no afecten al resultado de los cálculos

Hice una barra de minutos para comprobar la idoneidad de los cálculos, así he identificado que tengo un error, marqué el principio y el final de la hora, y el valor máximo en el indicador horizontal, luego cambié a una barra de minutos y comprobé, las barras de 6 horas estaban bien, y entonces algo salió mal

 
LazarevDenis:


en cuanto al número de barras - su 60 cuenta desde cero y no hay 60 minutos, ya que es el minuto cero de la nueva hora, o estoy equivocado

Tengo dudas sobre la última barra horaria, pero espero que al no haber barras de minutos, su volumen sea cero y no afecten a los resultados del cálculo

he creado una barra de minutos para comprobar la idoneidad de los cálculos, y he definido que tengo un error. en la barra de horas he marcado el inicio y el final de la hora, y el valor máximo en el indicador horizontal, luego he pasado a la barra de minutos y he comprobado, 6 barras de horas estaban bien, y entonces algo ha fallado


¿Escribir o proporcionar su código?
 
Vinin:

¿Escribir o proporcionar su código?
Estoy un poco confundido sobre qué escribir.
el código del indicador está en la página anterior, añadiré el EA cuando me asegure de que el indicador funciona bien, gracias
 
//+------------------------------------------------------------------+
//| FT_Fractal_MA.mq4 ||
//| FORTRADER.RU, Yuri, ftyuriy@gmail.com |
//| http://FORTRADER.RU, Fractales + Promedios |
//+------------------------------------------------------------------+
#property copyright "FORTRADER.RU, Yury, ftyuriy@gmail.com"
#enlace de propiedad "http://FORTRADER.RU, Fractales + Promedios"

/* Desarrollado para el número 49 de FORTRADER.Ru. Sistema de fractales y promedios.
Informes: http://finfile.ru/index.php/files/get/6qQW8tgENy/fracralma1.zip, http://finfile.ru/index.php/files/get/_glRYiHkQi/fracralma2.zip
Archivos de conjunto: http://finfile.ru/index.php/files/get/k2w2e92iCI/eurusd1h.zip
Discusión: http://fxnow.ru/group_discussion_view.php?group_id=49&grouptopic_id=266&grouppost_id=2667#post_2667
Archivo de registros: http://www.fortrader.ru/arhiv.php
Número 49: http://www.fortrader.ru/
*/

extern int lwmaper1=4;
extern int lwmaper2=8;

extern int lwmapertrend=40;
extern int lwmatrendchart=1;

extern int SL=150;
extern int TP=150;

extern int mn=1;

int err;

extern int MG=564651;
extern double Lots=0.01;

extern int maxpos=1;

int bares;
int inicio()
{
if(barras!=Barras)
{
bars=Barras;
OpenPattern();
}
return(0);
}

int okbuy; }

int AbrirPatrón()
{
doble op, sl, tp;
double upf=iFractals(NULL, 0, MODE_UPPER, 3);
double dwf=iFractals(NULL, 0, MODE_LOWER, 3);
double lwma1=iMA(NULL,0,lwmaper1,0,MODE_LWMA,PRICE_CLOSE,1);
double lwma2=iMA(NULL,0,lwmaper2,0,MODE_LWMA,PRICE_CLOSE,1);
double lwma1Last=iMA(NULL,0,lwmaper1,0,MODE_LWMA,PRICE_CLOSE,2);
double lwma2Last=iMA(NULL,0,lwmaper2,0,MODE_LWMA,PRICE_CLOSE,2);
double lwmatrend=iMA(NULL,GetPeriod(lwmatrendchart),lwmapertrend,0,MODE_LWMA,PRICE_CLOSE,1);
double lwmatrendLast=iMA(NULL,0,GetPeriod(lwmatrendchart),0,MODE_LWMA,PRICE_CLOSE,2);
if(upf!=0){oksell=1;okbuy=0;}
if(dwf!=0){okbuy=1;oksell=0;}
if(oksell==1 && lwma1<lwma2 && lwma1Last>lwma2Last && CountPos(0)<maxpos && lwmatrend>lwmatrendLast)
{
op=Bid;if(SL>0){sl=Bid+SL*Punto*mn;}if(TP>0){tp=Bid-TP*Punto*mn;}
err=EnviarOrden(Símbolo(),OP_Venta,Lotes,NormalizarDoble(op,Dígitos),3,NormalizarDoble(sl,Dígitos),NormalizarDoble(tp,Dígitos), "4 FORTRADER.RU",MG,0,Rojo);
if(err<0){Print("OrderSend()- Error OP_SELL. op "+op+" sl "+sl+" tp "+tp+""+GetLastError());return(-1);}
oksell=0;
}
if(okbuy==1 && lwma1>lwma2 && lwma1Last<lwma2Last && CountPos(1)<maxpos && lwmatrend<lwmatrendLast)
{
op=Ask;if(SL>0){sl=Ask-SL*Punto*mn;}if(TP>0){tp=Ask+TP*Punto*mn;}
err=EnviarOrden(Símbolo(),OP_BUY,Lotes,NormalizarDoble(op,Dígitos),3,NormalizarDoble(sl,Dígitos),NormalizarDoble(tp,Dígitos), "6 FORTRADER.RU",MG,0,Rojo);
if(err<0){Print("OrderSend()- Error OP_BUY. op "+op+" sl "+sl+" tp "+tp+""+GetLastError());return(-1);}
okbuy=0;
}
return(err);
}
//Comprobar el número de posiciones.
int CountPos(int type)
{// Descripción http://fxnow.ru/blog.php?user=Yuriy&blogentry_id=66

int i;
int col;
int count=0 ;
for( i=0; i<=TotalPedidos(); i++)
{
if(OrderSelect(i,SELECT_BY_POS)==true)
{
if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && type==1 && OrderMagicNumber()==MG){count++;}
if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && type==0 && OrderMagicNumber()==MG){count++;}
}
}
return(count);
}

int GetPeriod(int GrafOpen)
{int GrafOpenT;
switch(GrafOpen)
{
caso 1: GrafOpenT=1;break;
caso 2: GrafOpenT=5;break;
caso 3: GrafOpenT=15;break;
caso 4: GrafOpenT=30;break;
caso 5: GrafOpenT=60;break;
caso 6: GrafOpenT=240;break;
caso 7: GrafOpenT=1440;break;
por defecto: GrafOpenT=1;break;
}
return(GrafOpenT);

}

Por favor, cambien la compra y venta en este EA desde este sitio, no me funciona. Es interesante comprobarlo, porque es demasiado bueno para tirarlo por la sierra.

 
LazarevDenis:


en cuanto al número de barras - su 60 cuenta desde cero y no hay 60 minutos ya que este es el minuto cero de la nueva hora, o estoy equivocado

Voy a hacer una pregunta tonta ahora, ¿cuántos bares diarios hay en un año?
 

Buenas noches... por la mañana... o tal vez por la tarde...

Estoy intentando aprender el lenguaje mql... Me encuentro con un malentendido... La esencia del problema está en el código:

      OrderSelect(ТикетСелл,SELECT_BY_TICKET);
      double СеллТейкПрофит=ЦенаПродажи-(ЦенаПокупки-ЦенаПродажи);
      PrintDoubleToStr("OrderOpenPrice()= ",OrderOpenPrice(),8);PrintDoubleToStr("ЦенаПродажи= ",ЦенаПродажи,8);
      PrintDoubleToStr("OrderStopLoss()= ",OrderStopLoss(),8);PrintDoubleToStr("ЦенаПокупки= ",ЦенаПокупки,8);
      PrintDoubleToStr("OrderTakeProfit()= ",OrderTakeProfit(),8);PrintDoubleToStr("СеллТейкПрофит= ",СеллТейкПрофит,8);
      Print(OrderType(),"=",OP_SELLSTOP);
      if((OrderType()==OP_SELLSTOP) && ((OrderOpenPrice()!=ЦенаПродажи)||(OrderStopLoss()!=ЦенаПокупки)||(OrderTakeProfit()!=СеллТейкПрофит)))
      {
         OrderModify(OrderTicket(),ЦенаПродажи,ЦенаПокупки,СеллТейкПрофит,0,Red);
      }

La función "PrintDoubleToStr" imprime números dobles en el registro...

En general, en mi diario (Leer de abajo a arriba).

2011.09.04 22:56:36	2011.08.01 00:00  Прямоугольник EURUSD,H1: OrderModify error 1
2011.09.04 22:56:36	2011.08.01 00:00  Прямоугольник EURUSD,H1: 5=5
2011.09.04 22:56:36	2011.08.01 00:00  Прямоугольник EURUSD,H1: СеллТейкПрофит= 1.41884000
2011.09.04 22:56:36	2011.08.01 00:00  Прямоугольник EURUSD,H1: OrderTakeProfit()= 1.41884000
2011.09.04 22:56:36	2011.08.01 00:00  Прямоугольник EURUSD,H1: ЦенаПокупки= 1.44244000
2011.09.04 22:56:36	2011.08.01 00:00  Прямоугольник EURUSD,H1: OrderStopLoss()= 1.44244000
2011.09.04 22:56:36	2011.08.01 00:00  Прямоугольник EURUSD,H1: ЦенаПродажи= 1.43064000
2011.09.04 22:56:36	2011.08.01 00:00  Прямоугольник EURUSD,H1: OrderOpenPrice()= 1.43064000

Hay una pregunta: ¿Por qué modifica el orden si todos los valores son iguales y por lo tanto no se cumple esta condición?

if((OrderType()==OP_SELLSTOP) && ((OrderOpenPrice()!=ЦенаПродажи)||(OrderStopLoss()!=ЦенаПокупки)||(OrderTakeProfit()!=СеллТейкПрофит)))
Por favor, dígame dónde me equivoqué...
 
niknikolas:

Por favor, dígame dónde me equivoqué...

No pescaré un pez, pero te daré una caña de pescar... también puedes añadir una línea Print(OrderOpenPrice()!=Precio de venta) y la imagen estará completa y será suficiente para sacar conclusiones independientes.
 
splxgf:
No pescaré un pez, pero te daré una caña de pescar... puedes añadir más líneas Print(OrderOpenPrice()!=SellTakeProfit) y la imagen estará completa y será suficiente para sacar conclusiones independientes.

Como se dice, "¿Qué hay para mí?" Necesito un gusano... De todos modos, aquí está el código:

OrderSelect(ТикетСелл,SELECT_BY_TICKET);
double СеллТейкПрофит=ЦенаПродажи-(ЦенаПокупки-ЦенаПродажи);
Print("OrderOpenPrice()!=ЦенаПродажи= ",OrderOpenPrice()!=ЦенаПродажи);
Print("OrderStopLoss()!=ЦенаПокупки= ",OrderStopLoss()!=ЦенаПокупки);
Print("OrderTakeProfit()!=СеллТейкПрофит= ",OrderTakeProfit()!=СеллТейкПрофит);
PrintDoubleToStr("OrderTakeProfit()= ",OrderTakeProfit(),8);
PrintDoubleToStr("СеллТейкПрофит   = ",СеллТейкПрофит,8);
if((OrderType()==OP_SELLSTOP) && ((OrderOpenPrice()!=ЦенаПродажи)||(OrderStopLoss()!=ЦенаПокупки)||(OrderTakeProfit()!=СеллТейкПрофит)))
{
 OrderModify(OrderTicket(),ЦенаПродажи,ЦенаПокупки,СеллТейкПрофит,0,Red);
}
En la revista:
2011.09.05 00:21:32     2011.08.01 00:00  Прямоугольник EURUSD,H1: OrderModify error 1
2011.09.05 00:21:32     2011.08.01 00:00  Прямоугольник EURUSD,H1: СеллТейкПрофит   = 1.42505000
2011.09.05 00:21:32     2011.08.01 00:00  Прямоугольник EURUSD,H1: OrderTakeProfit()= 1.42505000
2011.09.05 00:21:32     2011.08.01 00:00  Прямоугольник EURUSD,H1: OrderTakeProfit()!=СеллТейкПрофит= 1
2011.09.05 00:21:32     2011.08.01 00:00  Прямоугольник EURUSD,H1: OrderStopLoss()!=ЦенаПокупки= 0
2011.09.05 00:21:32     2011.08.01 00:00  Прямоугольник EURUSD,H1: OrderOpenPrice()!=ЦенаПродажи= 0

Por qué con " SellTakeProfit = 1.42505000" y con "OrderTakeProfit()= 1.42505000" todavía "OrderTakeProfit()!=SellTakeProfit= 1 "

No está claro en general...