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

 
valenok2003:

copyright
string copyright = "\xA9";
 
ToLik_SRGV:

grazie
 
Di nuovo, ritorno alla domanda che ho posto a https://forum.mql4.com/ru/15972/page693 - qui, il trasferimento di parametri tra indicatori e indicatori - esperti. Naturalmente, l'uso proposto di variabili globali risolve parzialmente questo problema, ma sorge un'altra questione! Secondo la descrizione delle variabili globali ......... Una variabile GV può essere solo di tipo doppio, ma come ci aspettiamo che Expert Advisors sappia se la variabile è ricevuta da un certo simbolo e timeframe quando riceve il valore di una variabile globale ?
 
Infinity:
Di nuovo, ritorno alla domanda che ho posto a https://forum.mql4.com/ru/15972/page693 - qui, il trasferimento di parametri tra indicatori e indicatori - esperti. Naturalmente, l'uso proposto di variabili globali risolve parzialmente questo problema, ma sorge un'altra questione! Secondo la descrizione delle variabili globali ......... Una variabile GV può essere solo di tipo doppio, ma come ci aspettiamo che Expert Advisors sappia se la variabile è ricevuta da un certo simbolo e timeframe quando riceve il valore di una variabile globale?

Codificare i simboli. Anche se è possibile usare nomi di variabili per questo scopo, per esempio EUSRUSD_H1_Var1
 
cyclik33:


Fatto nel programma Gorando, con l'aggiunta del vostro martin.

//+------------------------------------------------------------------+
//| Copyright 2005, Gordago Software Corp.
//| http://www.gordago.com/ |
//| versione 2.0 |
//+------------------------------------------------------------------+




void OpenBuy() {
double dStopLoss = 0, dTakeProfit = 0;
doppio Lotti_Nuovo = Lotto;

se (isLossLastPos(NULL, -1, MAGIC))
Lotti_Nuovi *= 2;
else if (!isLossLastPos(NULL, -1, MAGIC))
Lotti_Nuovo = Lotto;


se (dBuyStopLossPoint > 0)
dStopLoss = Bid-dBuyStopLossPoint*Point;

se (dBuyTakeProfitPoint > 0)
dTakeProfit = Bid + dBuyTakeProfitPoint * Point;

int numorder = OrderSend(Symbol(), OP_BUY, Lots_New, Ask, nSlippage, dStopLoss, dTakeProfit, sNameExpert, MAGIC, 0, colorOpenBuy);

if (numorder > -1 && lFlagUseSound)
PlaySound(sSoundFileName);
}

void OpenSell() {
double dStopLoss = 0, dTakeProfit = 0;
doppio Lotti_Nuovo = Lotto;

se (isLossLastPos(NULL, -1, MAGIC))
Lotti_Nuovi *= 2;
else if (!isLossLastPos(NULL, -1, MAGIC))
Lotti_Nuovo = Lotto;

se (dSellStopLossPoint > 0)
dStopLoss = Ask+dSellStopLossPoint*Point;

se (dSellTakeProfitPoint > 0)
dTakeProfit = Ask-dSellTakeProfitPoint*Point;

int numorder = OrderSend(Symbol(),OP_SELL, Lots_New, Bid, nSlippage, dStopLoss, dTakeProfit, sNameExpert, MAGIC, 0, colorOpenSell);

if (numorder > -1 && lFlagUseSound)
PlaySound(sSoundFileName);
}

Tu hai

void OpenBuy() {

double dStopLoss = 0, dTakeProfit = 0;
doppio Lotti_Nuovo = Lotto;

se (isLossLastPos(NULL, -1, MAGIC))
Lotti_Nuovi *= 2;
else if (!isLossLastPos(NULL, -1, MAGIC))

Lotti_Nuovo = Lotto;

È una funzione e all'inizio di questa funzione si assegna il valore = Lot alla variabile Lots_New;

Pensate a come cambierà in seguito se lo riportate sempre al suo stato originale?

Dove ti ho detto di scriverlo? Nelle variabili esterne prima della funzione di avvio...

E normalizzare il valore del lotto alla dimensione corretta:

Lots_New = NormalizeLot(Lot*2, False, "");

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 16.05.2008                                                     |
//|  Описание : Возвращает нормализованное значение торгуемого лота.           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    lo - нормализуемое значение лота.                                       |
//|    ro - способ округления          (   False    - в меньшую,               |
//|                                        True     - в большую сторону)       |
//|    sy - наименование инструмента   ("" или NULL - текущий символ)          |
//+----------------------------------------------------------------------------+
double NormalizeLot(double lo, bool ro=False, string sy="") {
  double l, k;
  if (sy=="" || sy=="0") sy=Symbol();
  double ls=MarketInfo(sy, MODE_LOTSTEP);
  double ml=MarketInfo(sy, MODE_MINLOT);
  double mx=MarketInfo(sy, MODE_MAXLOT);

  if (ml==0) ml=0.1;
  if (mx==0) mx=100;

  if (ls>0) k=1/ls; else k=1/ml;
  if (ro) l=MathCeil(lo*k)/k; else l=MathFloor(lo*k)/k;

  if (l<ml) l=ml;
  if (l>mx) l=mx;

  return(l);
}
 
Vinin:

Codificare i simboli. Anche se possiamo usare nomi di variabili per questo scopo, ad esempio EUSRUSD_H1_Var1


Giusto! Grazie! Ma non è ancora chiaro... Risulta che nell'indicatore devo scrivere tutti i nomi delle variabili, corrispondenti all'intero numero di simboli possibili. E se voglio passare un parametro dall'indicatore in qualche momento predefinito, dovrò scrivere il codice di definizione del simbolo dell'indicatore. E poi usando i confronti o altre funzioni di tipo case, determinerò in quale variabile globale nominata scrivere il parametro! Ho capito tutto correttamente! ?

Ed ecco un'altra domanda retorica, o solo per conoscere la vostra opinione. Ci sono i cosiddetti "schemi" nella natura dell'analisi. Gli schemi non sono altro che modelli basati su certi momenti (o parametri) che si ripetono. Ma purtroppo il mercato è una sostanza instabile, quindi ogni modello può essere trattato in qualche misura come un modello inesatto, o un po' deviato da certi parametri, essendo fedele alla formazione del modello. Se prendiamo qualsiasi timeframe, per esempio 15 minuti, come base di analisi, vedremo che ci sarà una certa quantità di modelli su di esso che appaiono in determinate condizioni. E ci saranno alcune situazioni in cui il modello non si forma, ma queste situazioni sono molto vicine alla formazione del modello, solo che non si adattano a certi parametri (hanno deviato un po'). Questa situazione avrebbe potuto essere evitata con condizioni ragionevoli di formazione del modello. In questo caso ci sarebbero più modelli e più possibilità di entrare nel mercato, ma il numero di falsi modelli aumenterebbe perché i parametri non sono stati specificati rigorosamente. (Se consideriamo che con parametri rigorosi il modello può anche non apparire entro un giorno con queste condizioni).

Domanda: con quali parametri (condizione dura o condizione morbida) dovrei usare per formare un modello!

 

Aiutatemi a risolvere un problema!


Cerco gli ordini che sono aperti o in sospeso. Se sono disponibili, allora determino quale ordine è comprare o vendere. In certe condizioni (se uno è più grande dell'altro o più piccolo del terzo), voglio chiudere questo ordine. Cambia i suoi parametri e aprilo di nuovo.

Il problema è che c'è sempre un segnale per chiudere l'ordine e per aprirlo. Ecco perché il mio ordine si chiude, poi si apre di nuovo, e così via, si apre e si chiude... )))

Come risolvere questo problema? Ga


 
Infinity:


Esattamente, grazie! Ma non è ancora chiaro. Si scopre che nel mio indicatore dovrò prescrivere tutti i nomi delle variabili, corrispondenti all'intero numero di caratteri possibili. E se voglio passare un parametro dall'indicatore in qualche momento predefinito, dovrò scrivere il codice di definizione del simbolo dell'indicatore. E poi usando i confronti o altre funzioni di tipo case, determinerò in quale variabile globale nominata scrivere il parametro! Ho capito tutto correttamente! ?

E solo una domanda retorica, o solo per avere la tua opinione. Ci sono i cosiddetti "schemi" nella natura dell'analisi. Gli schemi non sono altro che modelli basati su certi momenti (o parametri) ripetitivi. Ma purtroppo il mercato è una sostanza instabile, quindi ogni modello può essere trattato in qualche misura come un modello inesatto, o un po' deviato da certi parametri, essendo fedele alla formazione del modello. Se prendiamo un timeframe qualsiasi, per esempio 15 minuti, come base di analisi, vedremo che ci sarà una certa quantità di modelli su di esso che appaiono in determinate condizioni. E ci saranno alcune situazioni in cui il modello non si forma, ma queste situazioni sono molto vicine alla formazione del modello, solo che non si adattano a certi parametri (hanno deviato un po'). Questa situazione avrebbe potuto essere evitata con condizioni ragionevoli di formazione del modello. In questo caso ci sarebbero più modelli e più possibilità di entrare nel mercato, ma il numero di falsi modelli aumenterebbe perché i parametri non sono stati specificati rigorosamente. (Se consideriamo che con parametri rigorosi il modello può anche non apparire entro un giorno con queste condizioni).

Domanda: con quali parametri (condizione dura o morbida) dovrei usare per formare un modello!

Potete farlo con i parametri, ma non con i modelli. Bisogna prima definire i criteri. Simile, non simile. E se è simile, in che misura. Almeno di quanto (percentuali). In un caso la componente tempo e quella prezzo. Come correlarli tra loro. Anche se posso allegare uno strato di neuroni. Il livello Kohonen fa un buon lavoro con questo
 

Aiutatemi a risolvere un problema!


Cerco gli ordini che sono aperti o in sospeso. Se sono disponibili, allora determino quale ordine è comprare o vendere. In certe condizioni (se uno è più grande dell'altro o più piccolo del terzo), voglio chiudere questo ordine. Cambia i suoi parametri e aprilo di nuovo.

Il problema è che c'è sempre un segnale per chiudere l'ordine e per aprirlo. Ecco perché il mio ordine viene chiuso e riaperto, e così si apre e si chiude ... )))

Come risolvere questo problema? Ga
 
Necron:
Roger, grazie, ma ancora non funziona correttamente. Ho provato un altro traino, ma l'errore è ancora lì :( C'è qualche differenza tra il traino di una posa e il traino di più pose allo stesso tempo?

Ho capito, si definisce la variabile ro all'inizio della funzione, ma non la si assegna da nessuna parte, cioè è 0.