[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 354

 
Valsorya:

¡¡¡Buenas tardes!!!

¿Cómo puedo saber qué hacer? Alpari no pasa arrays de números fraccionarios a la DLL de forma normal, ¡pensé que había un error en alguna parte del Asesor Experto! ¡He copiado todos los archivos a insta,forexfo4Yu - todo se transfiere correctamente! He copiado todos los archivos en insta, forexfor4U - ¡todo está correcto! Pasarlo a dll de una vez - ¡descuidado! ¡Funciona en insta, forex4yu! ¡No en alpari! ¡Esto es una mierda! ¡No puedo hacerlo funcionar! Tendré que hacerlo mañana. Mañana tendré que deshacerme de él para transmitir las fracciones como enteros, por ejemplo, multiplicarlas todas por 100.000 y dividirlas por 100.000 en dll y obtener fracciones. Pero el tamaño del contrato es de 100.000... si lo multiplicas por 10.000, no cabe en un entero.

Tal vez alguien sabe cómo hacerlo, EA está escribiendo.

Muéstrame el código.
 
Por favor, aconsejen cómo hacer que baylimit se abra cada 50 pips y si lo hace, no se abra más.
 

¿Cómo puedo saber el importe de AccountEquity() al inicio de la jornada?

 
Elektronik:

¿Cómo puedo saber el importe de AccountEquity() al inicio de la jornada?


calcule usted mismo.
o descargar un indicador del código base.

 

Consejos sobre la literatura de programación mql4 para principiantes, si puede proporcionar referencias

 

Cómo desactivar la Alerta, la instalé y no la veo en la tabla, por favor, aconséjeme

 
¿Cómo puedo comprobar si hay una orden pendiente o abierta para by a un precio determinado?
 

Pensé que había un error en alguna parte del Asesor Experto. ¡He copiado todos los archivos a insta,forexfo4yu - todo se transfiere correctamente! He copiado todos los archivos en insta, forexfor4U - ¡todo está correcto! Pasarlo directamente a dll - ¡descuidado! ¡Funciona en insta, forex4yu! ¡No en alpari! ¡Esto es una mierda! ¡No puedo hacerlo funcionar! Tendré que hacerlo mañana. Mañana tendré que deshacerme de él para transmitir las fracciones como enteros, por ejemplo, multiplicarlas todas por 100.000 y dividirlas por 100.000 en dll y obtener fracciones. Pero el tamaño del contrato es de 100.000... si lo multiplicas por 10.000, no cabe en un entero.

Tal vez alguien sabe cómo hacerlo, estoy escribiendo. Se pide que se ponga el código aquí :

en mql:

en la cabecera:

//+------------------------------------------------------------------+
#importar "el nombre del archivo no lo dirá)).dll"

void SendDataToDLL(int SendDataToDLL_DataForDLL_int[50],
double SendDataToDLL_DataForDLL_double[50],
int SendDataToDLL_ArrayOfErrors[30],
int SendDataToDLL_ArrayOfWornings[10]);
...

#importar
//+------------------------------------------------------------------+
...
//+------------------------------------------------------------------+
int init()
{...
CrearDatosParaDLL();
SendDataToDLL(DataForDLL_int,
DatosParaDLL_doble,
DataToDLL_ArrayOfErrors,
DataToDLL_ArrayOfWornings);
...
}
//+------------------------------------------------------------------+
void CreateDataForDLL()
{...
int CrearDatosParaDLL_i = -1;
...
CreateDataForDLL_i++; DataForDLL_double[CreateDataForDLL_i] = AccountLeverage();
CreateDataForDLL_i++; DataForDLL_double[CreateDataForDLL_i] = AccountStopoutLevel();
CreateDataForDLL_i++; DataForDLL_double[CreateDataForDLL_i] = AccountBalance();
CreateDataForDLL_i++; DataForDLL_double[CreateDataForDLL_i] = AccountCredit();
...
}

//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+

en C++

Declarar en la cabecera, por supuesto, y escribir en cpp:

extern "C" __declspec(dllexport) void __stdcall SendDataToDLL(int SendDataToDLL_DataForDLL_int[50],
double SendDataToDLL_DataForDLL_double[50],
int EnviarDatosADLL_ArrayOfErrors[30],
int SendDataToDLL_ArrayOfWornings[10])
{...
int SendDataToDLL_i; SendDataToDLL_i = 0;
// desbloquear la matriz int sin problemas
...
SendDataToDLL_i = 0;
... //InputData - estructura... no es gran cosa...
SendDataToDLL_i++; InputData.AccountLeverage = SendDataToDLL_DataForDLL_double[SendDataToDLL_i];
SendDataToDLL_i++; InputData.AccountStopLevel = SendDataToDLL_DataForDLL_double[SendDataToDLL_i];
SendDataToDLL_i++; InputData.AccountBalance = SendDataToDLL_DataForDLL_double[SendDataToDLL_i];
SendDataToDLL_i++; InputData.AccountCredit = SendDataToDLL_DataForDLL_double[SendDataToDLL_i];
...
cadena sssss;
sssss = GetCurrentDir().c_str();
sssss += "\NInputData.txt";
std::ofstream out2 (sssss.c_str());
// salida de una matriz int al archivo de texto - todo está bien
...
for (SendDataToDLL_i = 0; SendDataToDLL_i < 40; SendDataToDLL_i++)
{out2 << FloatToStr(SendDataToDLL_DataForDLL_double[SendDataToDLL_i]).c_str() << '\n';
}
...}

//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+

Miramos en el archivo de texto y disfrutamos de los datos correctos en el array int, mientras que el array double que sigue está lleno de tonterías como ceros o números locos y enormes que en principio no pueden estar ahí.

Si se lanzan todos estos archivos (dll y ex4) en insta, por ejemplo, todo funciona bien y todos los datos se muestran correctamente.
 
Stells:

Buenas tardes.

Podrías aconsejarme sobre la mejor manera de arreglar el cruce de, por ejemplo, los estocásticos:

en la primera y tercera barra comparar los valores de las líneas de señal y principal o la primera y segunda ?


En los dos adyacentes.
 
¿Y por qué MarketInfo(Symbol(), MODE_STOPLEVEL) devuelve 0 en alpari??
Razón de la queja: