[ARCHIVIO]Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non posso andare da nessuna parte senza di te - 5. - pagina 354

 
Valsorya:

Buon pomeriggio!!!

Come faccio a sapere cosa fare - Alpari non passa array di numeri frazionari alla DLL in modo normale, pensavo ci fosse un errore da qualche parte nell'Expert Advisor! Ho copiato tutti i file su insta,forexfo4Yu - tutto viene trasferito correttamente! Ho copiato tutti i file su insta, forexfor4U - tutto è corretto! Passarlo direttamente in dll - sciatto! Funziona in insta, forex4yu, non in alpari! Questa è proprio una schifezza! Non riesco a farlo funzionare, dovrò farlo domani. Dovrò torcere domani per trasmettere numeri frazionari come interi, per esempio, moltiplicarli tutti per 100.000 e dividerli per 100.000 in dll e ottenere frazioni. Ma la dimensione del contratto è 100.000... se lo moltiplichi per 10.000, non entrerà in un intero.

Forse qualcuno sa come farlo, EA sta scrivendo.

Mostrami il codice.
 
Per favore consigliate come fare in modo che baylimit si apra ogni 50 pips e se lo fa, non si apra più.
 

Come posso scoprire l'importo di AccountEquity() all'inizio della giornata di trading?

 
Elektronik:

Come posso scoprire l'importo di AccountEquity() all'inizio della giornata di trading?


calcolarlo da solo.
o scaricare un indicatore dalla codebase.

 

Consigli sulla letteratura di programmazione mql4 per i principianti, se è possibile fornire riferimenti

 

Come disabilitare Alert, l'ho installato e non riesco a vederlo nella tabella, per favore consigliatemi

 
Come posso controllare se c'è un ordine pendente o aperto per un determinato prezzo?
 

Ho pensato che ci fosse un errore da qualche parte nell'Expert Advisor! Ho copiato tutti i file su insta,forexfo4yu - tutto viene trasferito correttamente! Ho copiato tutti i file su insta, forexfor4U - tutto è corretto! Passarlo direttamente in dll - sciatto! Funziona in insta, forex4yu, non in alpari! Questa è proprio una schifezza! Non riesco a farlo funzionare, dovrò farlo domani. Dovrò torcere domani per trasmettere numeri frazionari come interi, per esempio, moltiplicarli tutti per 100.000 e dividerli per 100.000 in dll e ottenere frazioni. Ma la dimensione del contratto è 100.000... se lo moltiplichi per 10.000, non entrerà in un intero.

Forse qualcuno sa come farlo, sto scrivendo. Chiesto di mettere il codice qui:

in mql:

nell'intestazione:

//+------------------------------------------------------------------+
#importare "il nome del file non lo dirà))).dll"

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

#importare
//+------------------------------------------------------------------+
...
//+------------------------------------------------------------------+
int init()
{...
CreateDataForDLL();
SendDataToDLL(DataForDLL_int,
DataForDLL_double,
DataToDLL_ArrayOfErrors,
DataToDLL_ArrayOfWornings);
...
}
//+------------------------------------------------------------------+
void CreateDataForDLL()
{...
int CreateDataForDLL_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();
...
}

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

in C++

Dichiarare nell'intestazione, naturalmente, e scrivere in cpp:

extern "C" __declspec(dllexport) void __stdcall SendDataToDLL(int SendDataToDLL_DataForDLL_int[50],
doppio SendDataToDLL_DataForDLL_double[50],
int SendDataToDLL_ArrayOfErrors[30],
int SendDataToDLL_ArrayOfWornings[10])
{...
int SendDataToDLL_i; SendDataToDLL_i = 0;
// sblocca l'array int senza problemi
...
SendDataToDLL_i = 0;
... //InputData - struttura... niente di che...
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];
...
stringa sssss;
sssss = GetCurrentDir().c_str();
sssss += "\InputData.txt";
std::ofstream out2 (sssss.c_str());
// emette un array di int nel file di testo - tutto va bene
...
per (SendDataToDLL_i = 0; SendDataToDLL_i < 40; SendDataToDLL_i++)
{out2 << FloatToStr(SendDataToDLL_DataForDLL_double[SendDataToDLL_i]).c_str() << '\n';
}
...}

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

Guardiamo nel file di testo e godiamo di dati corretti nell'array int, mentre l'array doppio che lo segue è pieno di sciocchezze come zeri o numeri pazzi ed enormi che non possono essere lì in linea di principio.

Se tutti questi file (dll e ex4) sono gettati in insta, per esempio, tutto funziona bene e tutti i dati sono visualizzati correttamente.
 
Stells:

Buon pomeriggio.

Potresti consigliarmi il modo migliore per catturare l'incrocio di, diciamo, stocastico:

sulla prima e terza barra confrontare i valori delle linee di segnale e principale o la prima e la seconda ?


Sui due adiacenti.
 
E perché MarketInfo(Symbol(), MODE_STOPLEVEL) restituisce 0 su alpari??