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

 
TarasBY:

Qualcuno può dirmi qual è il problema?


Finché non avremo l'indicatore stesso, nessuno ce lo dirà.
 
Vinin:


È possibile. Se ovviamente la società di intermediazione lo supporta.

Basta tenere a mente che nel tester è possibile aprire posizioni nello strumento corrente, e ci sono alcune restrizioni su altri strumenti


Questa serie di restrizioni si applica al trading online? Se no, è triste. Il codice non apre nulla:

int magic = 428;//магический номер эксперта
extern double volume = 0.1;//объем выставляемого ордера
extern int slippage = 3;//проскальзывание
int OPB;//метка выставляемого ордера на покупку
int OPS;//метка выставляемого ордера на продажу
int Profit=1;//уровень профита открытых ордеров
string comB = "Выставили ордер Buy";//комментарий ордера
string comS = "Выставили ордер Sell";//комментарий ордера
double StochasticCAD;//положение основной линии Стохастики на текущем баре по USDCAD
double StochasticAUD;//положение основной линии Стохастики на текущем баре по AUDUSD

double SARCAD;//текущее положение индикатора по USDCAD
double SARСCAD;//положение индикатора бар назад по USDCAD
double SARAUD;//текущее положение индикатора по AUDUSD
double SARСAUD;//положение индикатора бар назад по AUDUSD


int start()
  {
  
//______________________________определение значений переменных_______________________ 


      StochasticCAD = iStochastic("USDCAD",30,5,3,3,1,1,0,0); 
      StochasticAUD = iStochastic("AUDUSD",30,5,3,3,1,1,1,0);
      
      SARCAD=iSAR("USDCAD",30,0.02,0.2,0);
      SARСCAD=iSAR("USDCAD",30,0.02,0.2,1);
      SARAUD=iSAR("AUDUSD",30,0.02,0.2,0);
      SARСAUD=iSAR("AUDUSD",30,0.02,0.2,1);
      
      double bidCAD=MarketInfo("USDCAD",MODE_BID);
      double askCAD=MarketInfo("USDCAD",MODE_ASK);
      double bidAUD=MarketInfo("AUDUSD",MODE_BID);
      double askAUD=MarketInfo("AUDUSD",MODE_ASK);


........................


//______________выставление ордеров______________________________________________________________________
    
  
    if (SARCAD>askCAD && SARСCAD<bidCAD && SARAUD<bidAUD && SARСAUD>askAUD && OPB<1)//определим условия
     
     {  //_______Buy_______ 

          if(!IsTradeAllowed())
               {
                  Alert("занят торговый поток, повторим попытку бай...");
                  return(-1);
               }
          OPB =OrderSend("GBPUSD",OP_BUY,volume,Ask,slippage,0,0,comB,magic,0,Red); //выставим ордер
            
            if(OPB == -1)
              {
                 Alert("GBPUSD"," ошибка: бай", GetLastError());
                 return(-1);
              }
         
            if(OPB > 1)
            Alert ("GBPUSD","Выставили ордер на покупку!");

     }
      else
     {//_______Sell_______
  
         if (SARСCAD>askCAD && SARCAD<bidCAD && SARСAUD<bidAUD && SARAUD>askAUD && OPS<1)//определим условия
     
         {
          
           if(!IsTradeAllowed())
                {
                   Alert("занят торговый поток, повторим попытку селл...");
                   return(-1);
                }
        
           OPS=OrderSend("GBPUSD",OP_SELL,volume,Bid,slippage,0,0,comS,magic,0,Blue); //выставим ордер


             if(OPS == -1)
               {
                  Alert("GBPUSD"," ошибка: селл", GetLastError());
                  return(-1);
               }
         
             if(OPS > 1)
             Alert ("GBPUSD","Выставили ордер на продажу!");

         }
     }    
   return(0);//выход
  }
 
mInvIn:

Ciao a tutti.

Potete dirmi per favore: dopo aver fatto dei test sulla cronologia, c'è un modo per ottenere il commento o il numero magico di ogni trade fatto, o qualsiasi altro modo per identificare i trade? Lasciatemi provare a spiegare il significato. Supponiamo che io abbia programmato alcuni pattern ed eseguito l'EA sulla storia, il risultato, come spesso accade, è la perdita. Sarebbe interessante vedere quale dei modelli e in quali condizioni di mercato sta perdendo sempre più spesso, e quale (se c'è) mostra almeno qualche profitto.

Grazie in anticipo per le risposte.

Rendilo semplice. Imposta il numero di pattern come parametro esterno. L'Expert Advisor dovrebbe aprire posizioni solo secondo questo schema. E se si specifica zero, per esempio, si apre con qualsiasi modello. Si esegue l'ottimizzazione secondo tutti i modelli. Si ottiene il quadro riassuntivo e la ripartizione dei modelli.
 
Una funzione "Nuovo Ordine" come "Nuovo Bar" è necessaria. La funzione dovrebbe avere valore TRUE solo per un tick dopo il momento in cui l'ordine è stato aperto. Cioè nel momento in cui il numero di ordini aperti cambia verso l'alto. Per favore aiutatemi
 
Techno:
c'è un annullamento degli ordini storici?
No, solo ordini a mercato e in sospeso.
 
IgorM:


c'è un tale problema - anch'io ho avuto questo problema, se l'Expert Advisor fa molti scambi all'anno - forse troppi dati sono memorizzati per l'output del risultato finale o forse i buffer degli indicatori mangiano la memoria

Ho visto - non so, abbiate pazienza - per un quadro generale, il test è per 10 anni, ed è meglio ottimizzare per un anno e poi fare una selezione dei migliori parametri

Grazie Igor! Intuitivamente lo sto facendo. Ho pensato che potrebbe essere possibile per un periodo più lungo non perdere anche la velocità?
 

I guru consigliano, mi sono già scervellato, sento che dovrebbe essere facile, ho provato in entrambi i modi... Non funziona...

L'essenza del problema:

Sto scrivendo un indicatore, cattura i punti nei buffer, in totale ci dovrebbero essere 4, 2 assemblati normalmente, i valori come dovrebbero essere da barre, o zero o, prezzo, qui tutto è OK, ma abbiamo bisogno di altri 2 buffer in cui mettere i valori in questo modo: se un valore non zero viene trovato per il buffer 0, quindi controllare se il precedente valore non zero nel buffer 0, e se è meno, allora il valore corrente viene scritto nel buffer 2. Voglio che sia calcolato al volo, non tramite ricerca e looping, è il mio primo indicatore, ho scritto Expert Advisors e script, ma mi sono perso con l'indicatore e i suoi buffer...

...................

Counted_bars=IndicatorCounted(); // Numero di barre calcolate

i=Bars-Counted_bars-1; // Indice del primo non contato

while(i>1) // Loop su barre non contate

{

if (..............) // tutto funziona qui

{

Buf_0[i]=High[i];

{ qui vogliamo calcolare Buf_2[i] }

}

se (..............) //tutto funziona anche qui

{

Buf_1[i]=Low[i];

{ma qui vogliamo calcolare Buf_3[i] }

}

i--;

//calcolare l'indice della prossima barra

}

//--------------------------------------------------------------------

return; // Esci dalla funzione speciale start()

}

//--------------------------------------------------------------------

 
Cosa succede più spesso - comprare o vendere? Significato globale.
 
ChachaGames:

I guru consigliano, mi sono già scervellato, sento che dovrebbe essere facile, ho provato in entrambi i modi... Non posso...

L'essenza del problema:

Sto scrivendo un indicatore, cattura i punti nei buffer, in totale ci dovrebbero essere 4, 2 assemblati normalmente, i valori come dovrebbero essere da barre, o zero o, prezzo, qui tutto è OK, ma abbiamo bisogno di altri 2 buffer in cui mettere i valori in questo modo: se un valore non zero viene trovato per il buffer 0, quindi controllare se il precedente valore non zero nel buffer 0, e se è meno, allora il valore corrente viene scritto nel buffer 2. Voglio che sia calcolato al volo, non con la ricerca e il looping, è il mio primo indicatore, ho scritto Expert Advisors e script, ma mi sono perso con l'indicatore e i suoi buffer...

...................

Counted_bars=IndicatorCounted(); // Numero di barre calcolate

i=Bars-Counted_bars-1; // Indice del primo non contato

while(i>1) // Loop su barre non contate

{

if (..............) // tutto funziona qui

{

Buf_0[i]=High[i];

{ qui vogliamo calcolare Buf_2[i] }

}

if (..............) //tutto funziona anche qui

{

Buf_1[i]=Low[i];

{ma qui vogliamo calcolare Buf_3[i] }

}

i--;

//calcolare l'indice della prossima barra

}

//--------------------------------------------------------------------

return; // Esci dalla funzione speciale start()

}

//--------------------------------------------------------------------

In parole povere, come faccio a trovare l'indice del precedente valore non nullo nel buffer?
 
_SS_:
Cosa succede più spesso - comprare o vendere? Significato globale.
Esattamente a metà per ogni vendita c'è un acquirente diverso :)
Motivazione: