Selezionare un simbolo nelle impostazioni - pagina 3

 
Alexey Viktorov:

Riempire una matrice di caratteri e lavorare con la matrice.

C'è un EA gratuito che usa il pezzo di codice di cui sopra ***


ps; drubashka, avresti dovuto rimuovere il link. Tra i miei prodotti sul mercato, solo DUE sono a pagamento. Uno del 2017 è stato affittato 4 volte, e l'altro del 2014 per 10 sterline non è stato comprato una volta. Quindi non c'è da aspettarsi alcuna pubblicità qui.

Non so perché mi sono iscritto a questo thread - ora sto lottando, e non funziona. Sto ancora cercando un modo per farlo funzionare.

Non so, forse questo funzionerà.

struct translate{
   string EURUSD;
   string GBPUSD;
   string USDCHF;
   string USDJPY;
   string USDCAD;
   string AUDUSD;
   string AUDNZD;
   string AUDCAD;
   string AUDCHF;
   string AUDJPY;
   string CHFJPY;
   string EURGBP;
   string EURAUD;
   string EURCHF;
   string EURJPY;
   string EURNZD;
   string EURCAD;
   string GBPCHF;
   string GBPJPY;
   string CADCHF;
};
translate langs;
 
Aleksandr Klapatyuk:

Grazie per aver risposto, non so perché sono venuto in questo thread - ora sto lottando e non riesco a farlo funzionare.

Non so, forse questo funzionerà.

State perdendo il vostro tempo. Non sarete in grado di riempire la struttura o l'enum programmaticamente. E l'array può essere usato solo per un EA multivaluta. Multicurrency EA non è quello che può essere messo su qualsiasi simbolo, ma uno che può scambiare diversi simboli pur essendo su uno dei grafici. In questo link c'è un esempio di un tale EA multicurrency. La selezione delle valute può essere impostata su una delle tre opzioni:

  1. solo la coppia su cui è negoziato l'Expert Advisor
  2. un elenco separato da virgole di valute che saranno scambiate
  3. tutte le coppie aperte al momento del lancio dell'Expert Advisor sono negoziate
Ma le opzioni sono selezionate tramite enum
 
Alexey Viktorov:

Non dovreste farlo. Né la struttura né l'enum possono essere compilati programmaticamente. E l'array può essere usato solo per un EA multivaluta. L'EA multicurrency non è quello che può essere impostato su qualsiasi simbolo, ma quello che si trova su uno dei grafici e può negoziare diversi simboli. In questo link c'è un esempio di un tale EA multicurrency. La selezione delle valute può essere impostata su una delle tre opzioni:

  1. solo la coppia su cui si trova l'Expert Advisor sarà scambiata
  2. un elenco separato da virgole di valute che saranno scambiate
  3. tutte le coppie di valute aperte al momento del lancio dell'Expert Advisor sono negoziate
Ma le opzioni sono selezionate tramite enum

Grazie! Ho iniziato a fare qualcosa che non posso permettermi, preferisco imparare qualcosa di più facile.

L'ho fatto prima - ha funzionato tutto.

string         Symb[3]={"EURUSD","GBPUSD","EURJPY"};
double         prPos[3];
------------------------------------------------------------
   for(int i=0;i<3; i++)
      if(PositionSelect(Symb[i]))
        {
         prPos[i]=(PositionGetDouble(POSITION_PROFIT)/PositionGetDouble(POSITION_VOLUME)/SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_VALUE))/n;
        }
      else
        {
         prPos[i]=0;
        }
 
Aleksandr Klapatyuk:

Grazie! Sto facendo qualcosa che non so fare, preferirei imparare qualcosa di più facile.

È così che ho fatto - ha funzionato tutto.

Questa è la seconda opzione che ho descritto. Scambia le valute dalla lista preparata in una riga separata da virgole. Ma la mia versione è un po' diversa. La lista si presenta così

"EURUSD,GBPUSD,EURJPY"

allora l'array viene riempito da questa lista e l'array viene lavorato. Inoltre, il suffisso della valuta viene definito e unito automaticamente quando siriempie la matrice. Questo per evitare di dover ridigitare la lista in diversi account.

 
Alexey Viktorov:

Non stiamo parlando della stessa cosa.

simv

syTotal = SymbolsTotal(true) sembra essere sempre 1, perché se true, SymbolTotal() non mostrerà il numero di simboli in Market Watch, ma il numero di simboli selezionati in Market Watch e questo solleva la questione di come scorrere la lista prima di selezionare la voce successiva.

 
andre:


syTotal = SymbolsTotal(true) sembra essere sempre 1, perché se true, SymbolTotal() non dà il numero di simboli in Market Watch, ma il numero di simboli selezionati in Market Watch e questo solleva la questione di come scorrere la lista prima di selezionare la voce successiva.

Nel tester, sì, c'è sempre un simbolo. Ecco perché c'è un avvertimento nella descrizione dell'EA, che nel tester si può testare solo su un simbolo o su una lista di simboli.

 
Sfortunatamente, per renderlo piacevole, devi disegnare tu stesso il pannello di input, implementare un elenco a discesa, in generale, niente di fondamentalmente complicato, ma torbido. Se la religione e/o il cliente lo permettono, allora è più facile implementarlo su Sharp, attraverso windowsform. Per quanto riguarda la possibilità tecnica di farlo nel pannello standard, non vedo problemi di principio, è più una questione di desiderio dei creatori. È possibile implementare fornendo la selezione dei valori, solo per il compilatore dovremmo introdurre parole chiave aggiuntive, per scrivere come: __declsymb input string value=__default(o __pos1), in generale gli sviluppatori del compilatore/terminale devono svilupparlo.
 
Vladimir Simakov:
Sfortunatamente, per renderlo piacevole, devi disegnare tu stesso il pannello di input, implementare un elenco a discesa, in generale, niente di fondamentalmente complicato, ma torbido. Se la religione e/o il cliente lo permettono, allora è più facile implementarlo su Sharp, attraverso windowsform. Per quanto riguarda la possibilità tecnica di farlo nel pannello standard, non vedo problemi di principio, è più una questione di desiderio dei creatori. È possibile implementare fornendo la selezione dei valori, solo per il compilatore dovremmo introdurre parole chiave aggiuntive per scrivere come: __declsymb input string value=__default(o __pos1), in generale gli sviluppatori del compilatore/terminale devono svilupparlo.

Beh, sì. Se usi dll, puoi giocare ai carri armati sul terminale. Ma il problema è stato sollevato senza prendere in considerazione le capacità di dll

 
Alexey Viktorov:

Beh, sì. Se usate la dll, potete anche giocare ai carri armati sul terminale. Ma il problema è stato sollevato senza tener conto delle capacità della dll

Poi, o pregate i creatori o scrivete il vostro pannello di input. All'inizio del robot (più complicato con l'indicatore) in OnTimer() viene avviato il pannello di input auto-scritto, i dati di input, poi il robot è andato a lavorare. Funziona così.
 
Vladimir Simakov:
Poi, o pregate i creatori, o scrivete il vostro pannello di input. Quando il robot parte (più complicato con l'indicatore) il pannello di input auto-scritto viene lanciato in OnTimer(), i dati vengono inseriti, poi il robot inizia a lavorare. Funziona così.

Prima bisogna chiedersi: "Chi ne ha bisogno?".

Vorrei provarlo ma non ha funzionato. Ho detto all'Expert Advisor che non può essere fatto usando MQL. Ma nessuno gli ha chiesto come farlo con altri mezzi. Qual è il senso di tutte queste sciocchezze? Ci sono abbastanza persone qui che possono disegnare vignette sul grafico del terminale.

Motivazione: