Auguri per MQL5 - pagina 67

 
Ciao a tutti! Quando sarà approssimativamente il rilascio di MQL5?
 
zax >> :
>> Ciao a tutti! Quando è approssimativamente la data di rilascio di MQL5?

"nessun figlio... è fantastico..." (c) non ricorda quale pubblicità... :)

 
double AccountFreeMarginCheck( string symbol, int cmd, double volume) 

Per favore, fate una funzione simile dove potete impostare il rischio, cioè impostate la percentuale che volete rischiare, e la dimensione del lotto vi viene restituita.

Mi sono già stancato.

Se volessi usare questa funzione dovrei ricalcolare i valori dell'indicatore (mi dispiace, la funzione ha tanti errori ora). Non ho idea di come usarlo.

 
Non credo che lo sviluppo sia in corso su VC6.0 ora che i ludici stanno passando a VC2010
 


----------------------------------------------------------------------

La funzione restituisce l'offset dal broker GMT Timzone Server

#import "Kernel32.dll"
   void GetLocalTime(int& gLti[]);
   void GetSystemTime(int& gSt[]);
   int GetTimeZoneInformation(int& gtzI[]);


//returns Offset from GMT Timzone(Broker Server)
int GMTOffset() {
   int time_a[4];
   int time_b[43];
   
   GetSystemTime( time_a);
   int time0 = time_a[0] & 65535;
   int time1 = time_a[0] >> 16;
   int time2 = time_a[1] >> 16;
   int time3 = time_a[2] & 65535;
   int time4 = time_a[2] >> 16;
   int time5 = time_a[3] & 65535;
   string fuse1 = FormatDateTime( time0, time1, time2, time4, time4, time5);
   
   GetLocalTime( time_a);
   time0 = time_a[0] & 65535;
   time1 = time_a[0] >> 16;
   time2 = time_a[1] >> 16;
   time3 = time_a[2] & 65535;
   time4 = time_a[2] >> 16;
   time5 = time_a[3] & 65535;
   int time6 = time_a[3] >> 16;
   string fuse_sub = time6 + 1000;
   fuse_sub = StringSubstr( fuse_sub, 1);
   fuse1 = FormatDateTime( time0, time1, time2, time3, time4, time5);
   int t1 = 0;
   int gtt1 = GetTimeZoneInformation( time_b);
   if ( gtt1 != 0) t1 = time_b[0];
   if ( gtt1 == 2) t1 += time_b[42];
   int timex2 = StrToTime( fuse1);
   int tisu = TimeCurrent() - ( timex2 + 60 * t1);
   double trmr = MathRound( tisu / 360);
   int tzoff = MathRound( trmr / 10.0);
   return ( tzoff);
}

//format standart
string FormatDateTime(int time0, int time1, int time2, int time3, int time4, int time5) {
   string sub1 = time1 + 100; sub1 = StringSubstr( sub1, 1);
   string sub2 = time2 + 100; sub2 = StringSubstr( sub2, 1);
   string sub3 = time3 + 100;  sub3 = StringSubstr( sub3, 1);
   string sub4 = time4 + 100; sub4 = StringSubstr( sub4, 1);
   string sub5 = time5 + 100;  sub5 = StringSubstr( sub5, 1);
   return (StringConcatenate( time0, ".", sub1, ".", sub2, " ", sub3, ":", sub4, ":", sub5));
}


-----------------------------------------------------------------------------------------------------

La funzione restituisce l'offset dalla Timzone GMT del computer locale.

//return Timzone GMT offset from Local PC
int LocalGMTOffset() {
   int time_a[4];
   int time_b[43];
   
   GetSystemTime( time_a);
   int time0 = time_a[0] & 65535;
   int time1 = time_a[0] >> 16;
   int time2 = time_a[1] >> 16;
   int time3 = time_a[2] & 65535;
   int time4 = time_a[2] >> 16;
   int time5 = time_a[3] & 65535;
   string fuse1 = FormatDateTime( time0, time1, time2, time4, time4, time5);
   
   GetLocalTime( time_a);
   time0 = time_a[0] & 65535;
   time1 = time_a[0] >> 16;
   time2 = time_a[1] >> 16;
   time3 = time_a[2] & 65535;
   time4 = time_a[2] >> 16;
   time5 = time_a[3] & 65535;
   int time6 = time_a[3] >> 16;
   string fuse_sub = time6 + 1000;
   fuse_sub = StringSubstr( fuse_sub, 1);
   fuse1 = FormatDateTime( time0, time1, time2, time3, time4, time5);
   int t1 = 0;
   int gtt1 = GetTimeZoneInformation( time_b);
   if ( gtt1 != 0) t1 = time_b[0];
   if ( gtt1 == 2) t1 += time_b[42];
   int timex2 = StrToTime( fuse1);
   int tisu = TimeLocal() - ( timex2 + 60 * t1);
   double trmr = MathRound( tisu / 360);
   int tzoff = MathRound( trmr / 10.0);
   return ( tzoff);
}

//format standart
string FormatDateTime(int time0, int time1, int time2, int time3, int time4, int time5) {
   string sub1 = time1 + 100; sub1 = StringSubstr( sub1, 1);
   string sub2 = time2 + 100; sub2 = StringSubstr( sub2, 1);
   string sub3 = time3 + 100; sub3 = StringSubstr( sub3, 1);
   string sub4 = time4 + 100; sub4 = StringSubstr( sub4, 1);
   string sub5 = time5 + 100; sub5 = StringSubstr( sub5, 1);
   return (StringConcatenate( time0, ".", sub1, ".", sub2, " ", sub3, ":", sub4, ":", sub5));
}


+2 Campione ( esempio)

File:
sample.zip  2 kb
 

La funzione IninitializeReason( )

 
kernelmd >> :
Non credo che lo sviluppo sia stato fatto su VC6.0 ora che i ludici stanno passando a VC2010

non conosco MT5

e MT4 è scritto su VC6!

 
YuraZ >> :

MT5 Non lo so.

e MT4 è scritto su VC6!

Sì, hai ragione, è strano.

Ma non è necessario avere l'ultima versione di MSVC per usare il multi-core, secondo me è molto più importante parallelizzare correttamente i thread, cioè è tutta una questione di architettura.

 

Vorrei ridurre il traffico in entrata spuntando l'opzione aggiuntiva "Allow news".

Quando si eseguono 2 o più terminali, ognuno scarica le proprie notizie a seconda del "rango" del conto (demo, concorso, reale, ...). cioè traffico extra. In linea di principio, sarebbe possibile ottenere notizie su un conto reale, e su altri terminali in esecuzione non sono affatto necessari.

O disabilitare tutto quanto.

 
pvm63 >> :

Vorrei ridurre il traffico in entrata spuntando l'opzione aggiuntiva "Allow news".

Quando si eseguono 2 o più terminali, ognuno scarica le proprie notizie a seconda del "rango" del conto (demo, concorso, reale, ...). cioè traffico extra. In linea di principio, sarebbe possibile ottenere notizie su un conto reale, e su altri terminali in esecuzione non sono affatto necessari.

O disabilitare tutto quanto.

Quindi spegnilo.