[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 218

 
Shniperson:

Ciao, il fatto che gli EA con una grande quantità di codice e operazioni sono un po' lenti... l'abbiamo già capito... Ecco una domanda...

Il mio Expert Advisor ha un grande blocco per mantenere i trade... Se questo blocco viene spostato in un EA separato (e rimosso dal primo), avrò due EA contemporaneamente... Li farà lavorare più velocemente? Prenderà più velocemente le decisioni sugli affari... e prenderà più velocemente le decisioni sullo stop loss?

Penso che non si tratti di prendere una decisione sul trailing stop-loss, ma sulla velocità di esecuzione degli ordini da parte del broker. Una cosa è prendere una decisione e un'altra cosa è farla eseguire.
 
Suliena:

Grazie mille! Si scopre che avrei dovuto impostare un separatore di lista nelle impostazioni regionali!!!!

Sono 2 giorni che mi scervello sul codice!

Non c'è bisogno di toccare le impostazioni regionali! C'è un'impostazione del delimitatore in Excel.
 
Puoi dirmelo per favore! Come scrivo la differenza delle variabili MACD in pip? Per esempio:
if ( MACDCurrent-MACDSignal)>5*Point   // ??
 

Potresti dirmi il convertitore in TF non standard, perché la ricerca non funziona! Grazie!

 
borilunad:

Potresti dirmi il convertitore in TF non standard, perché la ricerca non funziona! Grazie!

Period_Converter.mq4
//|                 Copyright © 2005-2007, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
#property show_inputs
#include <WinUser32.mqh>

extern int ExtPeriodMultiplier=5; // new period multiplier factor
int        ExtHandle=-1;
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
   int    i, start_pos, i_time, time0, last_fpos, periodseconds;
   double d_open, d_low, d_high, d_close, d_volume, last_volume;
   int    hwnd=0,cnt=0;
//---- History header
   int    version=400;
   string c_copyright;
   string c_symbol=Symbol();
   int    i_period=Period()*ExtPeriodMultiplier;
   int    i_digits=Digits;
   int    i_unused[13];
//----  
   ExtHandle=FileOpenHistory(c_symbol+i_period+".hst", FILE_BIN|FILE_WRITE);
   if(ExtHandle < 0) return(-1);
//---- write history file header
   c_copyright="(C)opyright 2003, MetaQuotes Software Corp.";
   FileWriteInteger(ExtHandle, version, LONG_VALUE);
   FileWriteString(ExtHandle, c_copyright, 64);
   FileWriteString(ExtHandle, c_symbol, 12);
   FileWriteInteger(ExtHandle, i_period, LONG_VALUE);
   FileWriteInteger(ExtHandle, i_digits, LONG_VALUE);
   FileWriteInteger(ExtHandle, 0, LONG_VALUE);       //timesign
   FileWriteInteger(ExtHandle, 0, LONG_VALUE);       //last_sync
   FileWriteArray(ExtHandle, i_unused, 0, 13);
//---- write history file
   periodseconds=i_period*60;
   start_pos=Bars-1;
   d_open=Open[start_pos];
   d_low=Low[start_pos];
   d_high=High[start_pos];
   d_volume=Volume[start_pos];
   //---- normalize open time
   i_time=Time[start_pos]/periodseconds;
   i_time*=periodseconds;
   for(i=start_pos-1;i>=0; i--)
     {
      time0=Time[i];
      //---- history may be updated
      if(i==0)
        {
         //---- modify index if history was updated
         if(RefreshRates())
            i=iBarShift(NULL,0,time0);
        }
      //----
      if(time0>=i_time+periodseconds || i==0)
        {
         if(i==0 && time0<i_time+periodseconds)
           {
            d_volume+=Volume[0];
            if (Low[0]<d_low)   d_low=Low[0];
            if (High[0]>d_high) d_high=High[0];
            d_close=Close[0];
           }
         last_fpos=FileTell(ExtHandle);
         last_volume=Volume[i];
         FileWriteInteger(ExtHandle, i_time, LONG_VALUE);
         FileWriteDouble(ExtHandle, d_open, DOUBLE_VALUE);
         FileWriteDouble(ExtHandle, d_low, DOUBLE_VALUE);
         FileWriteDouble(ExtHandle, d_high, DOUBLE_VALUE);
         FileWriteDouble(ExtHandle, d_close, DOUBLE_VALUE);
         FileWriteDouble(ExtHandle, d_volume, DOUBLE_VALUE);
         FileFlush(ExtHandle);
         cnt++;
         if(time0>=i_time+periodseconds)
           {
            i_time=time0/periodseconds;
            i_time*=periodseconds;
            d_open=Open[i];
            d_low=Low[i];
            d_high=High[i];
            d_close=Close[i];
            d_volume=last_volume;
           }
        }
       else
        {
         d_volume+=Volume[i];
         if (Low[i]<d_low)   d_low=Low[i];
         if (High[i]>d_high) d_high=High[i];
         d_close=Close[i];
        }
     } 
   FileFlush(ExtHandle);
   Print(cnt," record(s) written");
//---- collect incoming ticks
   int last_time=LocalTime()-5;
   while(IsStopped()==false)
     {
      int cur_time=LocalTime();
      //---- check for new rates
      if(RefreshRates())
        {
         time0=Time[0];
         FileSeek(ExtHandle,last_fpos,SEEK_SET);
         //---- is there current bar?
         if(time0<i_time+periodseconds)
           {
            d_volume+=Volume[0]-last_volume;
            last_volume=Volume[0]; 
            if (Low[0]<d_low) d_low=Low[0];
            if (High[0]>d_high) d_high=High[0];
            d_close=Close[0];
           }
         else
           {
            //---- no, there is new bar
            d_volume+=Volume[1]-last_volume;
            if (Low[1]<d_low) d_low=Low[1];
            if (High[1]>d_high) d_high=High[1];
            //---- write previous bar remains
            FileWriteInteger(ExtHandle, i_time, LONG_VALUE);
            FileWriteDouble(ExtHandle, d_open, DOUBLE_VALUE);
            FileWriteDouble(ExtHandle, d_low, DOUBLE_VALUE);
            FileWriteDouble(ExtHandle, d_high, DOUBLE_VALUE);
            FileWriteDouble(ExtHandle, d_close, DOUBLE_VALUE);
            FileWriteDouble(ExtHandle, d_volume, DOUBLE_VALUE);
            last_fpos=FileTell(ExtHandle);
            //----
            i_time=time0/periodseconds;
            i_time*=periodseconds;
            d_open=Open[0];
            d_low=Low[0];
            d_high=High[0];
            d_close=Close[0];
            d_volume=Volume[0];
            last_volume=d_volume;
           }
         //----
         FileWriteInteger(ExtHandle, i_time, LONG_VALUE);
         FileWriteDouble(ExtHandle, d_open, DOUBLE_VALUE);
         FileWriteDouble(ExtHandle, d_low, DOUBLE_VALUE);
         FileWriteDouble(ExtHandle, d_high, DOUBLE_VALUE);
         FileWriteDouble(ExtHandle, d_close, DOUBLE_VALUE);
         FileWriteDouble(ExtHandle, d_volume, DOUBLE_VALUE);
         FileFlush(ExtHandle);
         //----
         if(hwnd==0)
           {
            hwnd=WindowHandle(Symbol(),i_period);
            if(hwnd!=0) Print("Chart window detected");
           }
         //---- refresh window not frequently than 1 time in 2 seconds
         if(hwnd!=0 && cur_time-last_time>=2)
           {
            PostMessageA(hwnd,WM_COMMAND,33324,0);
            last_time=cur_time;
           }
        }
      Sleep(50); 
     }      
//----
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void deinit()
  {
   if(ExtHandle>=0) { FileClose(ExtHandle); ExtHandle=-1; }
  }
//+------------------------------------------------------------------+
Creare un TF o un simbolo - allegarlo come un grafico offline. cioè FILE -> APRI AUTO...
 
avatara:
Creare un TF o un simbolo - agganciarlo come un grafico offline. cioè FILE -> APRI AUTO...


Grazie! Ma sto cercando un convertitore su cui l'EA potrebbe funzionare!

Ricordo un thread che parlava di questo e di quello che c'è in CodeBase.

 

Come posso usare un pezzo di codice per legare un trawl e un breakeven a uno stop loss e un take out?

Volevo mettere un pezzo di codice da qualche parte. Sì, sì, la cosa "per strategia".

 
borilunad:


Grazie! Ma sto cercando un convertitore su cui l'EA potrebbe funzionare!

Ricordo un thread che parlava di questo e di quello che c'è in CodeBase.

dopo.

quando ci sarà una finestra con un grafico suprastat. e sulla fonte sarà crunching lo script....

Esegui gli induks e owl su di esso (sulla finestra/grafico blyn!) - tutto funziona!

;)

 
Puoi suggerire un "consigliere" o script ... che sarebbe stato visualizzato in grandi numeri quanti punti e perdita di denaro / profitto la transazione corrente (aperto) e ciò che il saldo ... e qualcosa che non riesco a trovare .
 
avatara:

dopo.

quando ci sarà una finestra con il grafico del nemico. e la fonte starà sgranocchiando lo script....

Esegui gli induks e owl su di esso (sulla finestra/grafica btw!) - tutto funziona!

;)


Questo è tutto, grazie!

L'ho trovato, ho aggiunto le linee giuste al codice e all'inlude, l'ho messo offline e sono andato a commentare. E il commercio domani proverà.

Peccato che sia impossibile controllare i parametri nel tester, dovrò usare Demo per un po'.

Buona notte!