Un asesor que seguiría la tasa en un gráfico de cinco minutos con condiciones después del lanzamiento: - página 6
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Buen día.
Pueden aconsejar: Hay un script que escribe puntualmente el historial en el archivo, pero cuando se abre el archivo el registro no va.... El script que probablemente conoces o has visto se llama currency_loader
// cargar los datos del historial de M1
void LoadingM1(){//1
int MaxBars=MaxBarsInFile;
if(LoadM1 && iBars(Symbol(),PERIOD_M1)>BarsMin){ArrayCopyRates(ArrayM1,Symbol(),PERIOD_M1); ArrSizeM1=ArrayRange(ArrayM1,0);}
if(ArrSizeM1>1){//2
if(MaxBars>ArrSizeM1){MaxBars=ArrSizeM1;}
for(i2=1; i2<=Tryes; i2++){//3
h1 = FileWrite(FileNameM1,FILE_WRITE|FILE_CSV);
if(h1==-1){LastError=GetLastError();Info("1.2",1"," Hay un error al abrir el archivo: "+NombreDeArchivoM1+" en "+i2+" Pruebe "+DescripciónDelError(ÚltimoError));Pausa=Pausa+Pausa; Sleep(Pausa); continue; }else{Info("1.2",2", "Archivo "+NombreDeArchivoM1+" abierto con éxito");}
FileWrite(h1,FirstLine);
for (i=MaxBars-1; i>=0; i-- ){//4
if(!USRegionSet){
CString=CString+TimeToStr(ArrayM1[i][0],TIME_DATE)+""; // fecha del bar
CString=CString+TimeToStr(ArrayM1[i][0],TIME_MINUTES)+","; // hora de la barra
}
si no{
BarTime=ArrayM1[i][0];
CString=CString+GetUSFormatTime(BarTime)+" "; // fecha de la barra
BarTime=0;
}
CString=CString+DoubleToStr(ArrayM1[i][1],iDigits)+","; // precio de apertura
CString=CString+DoubleToStr(ArrayM1[i][3],iDigits)+","; // Precio alto
CString=CString+DoubleToStr(ArrayM1[i][2],iDigits)+","; // Precio bajo
CString=CString+DoubleToStr(ArrayM1[i][4],iDigits)+""; // Precio de cierre
FileWrite(h1,CString);
CString="";
}//4
FileClose(h1);
LCM1 = iTime(Symbol(),PERIOD_M1,0);
volver;
}//3
}//2
}//1
Por lo que he entendido hay un problema en las asas, pero donde está la pregunta...
¡¡¡¡Sigue sin funcionar!!!!
Ayúdame a entender cuál es la razón.
¿Cómo lo has probado? ¿Y cómo se puede obtener un beneficio si no funciona? ¿Y cómo no funciona? ¿Qué imprime la revista? ¿Lo has probado dónde, en el probador? ¿O en línea?
Además, mira la función OrdersTotal, para qué sirve y cómo se inserta por....
Por ejemplo, int total=OrdersTotal(); if(total<1) {
{
//----
if (iOpen(NULL,5,0)-Bid>Delta*Point) //El precio ha caído más que los puntos Delta
{
ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point, "Bought",MagicNumber,11111,Green);
}
if (iOpen(NULL,5,0)-Bid<Delta*Point) //El precio subió más que los puntos Delta
{
ticket=OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point, "Sold",MagicNumber,22222,Green);
}
//----
return(0);
}
//+------------------------------------------------------------------+
Y tú eres un tipo insistente, lo entiendes. Funciona, pero es una estupidez. Cópialo en el MetaEditor, o volverás a confundir el + con el -.
Por lo que tengo entendido, el problema está en alguna parte de las asas, pero dónde está la cuestión...Este es un ejemplo de cómo obtener Handle
int hwnd1 = WindowHandle(Symbol(), Period());
No he notado nada similar en su código.
Si un archivo "csv" es abierto por Excel, está bloqueado y el archivo no tiene acceso de escritura, ¿es un misterio?
¿Cómo lo has probado? ¿Y cómo se puede obtener un beneficio si no funciona? ¿Y cómo no funciona? ¿Qué imprime la revista? ¿Lo has probado en el probador? ¿O en línea?
Además, mira la función OrdersTotal, para qué sirve y cómo se inserta por....
Por ejemplo, int total=OrdersTotal(); if(total<1) {
Muestra un beneficio de 504, un número de operaciones de 432, una reducción de 788 dólares, un 7,31%. En ajustes pongo m5 en libra, 17/03/08 - 19/03/08.
Y cuando lo ejecuté en el gráfico, mis condiciones para las operaciones se cumplieron, pero el Asesor Experto no hizo nada.......
int inicio()
{
//----
si (iOpen(NULL,5,0)-Oferta>Delta*Punto) //El precio ha caído más que los puntos Delta
{
ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point, "Bought",MagicNumber,11111,Green)
}
if (iOpen(NULL,5,0)-Bid<Delta*Punto) //El precio subió más que los puntos Delta
{
ticket=OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point, "Sold",MagicNumber,22222,Green);
}
//----
return(0);
}
//+------------------------------------------------------------------+
Y tú eres un tipo obstinado, lo entiendes. Funciona, pero es una estupidez. Cópialo en el MetaEditor, o volverás a confundir el + con el -.
¿Cómo puedo hacer que mi Asesor Experto abra sólo una operación y no abra otras hasta que termine?
Me da vergüenza preguntar :)))
¿Cómo puedo hacer que mi Asesor Experto abra sólo una operación, y hasta que termine, no abra otras?
Organiza en un bucle una búsqueda de todas las posiciones abiertas y comprueba en ellas el símbolo actual y el número mágico. Si no se encuentra ninguno, entonces encendemos la luz verde. El kodobase está lleno de estos ejemplos, en casi todos los EA.