Domande dai principianti MQL4 MT4 MetaTrader 4 - pagina 93

 
seny:

Per favore aiutatemi, ecco un esempio

Funziona così...

ma non così...

come faccio a scrivere nel buffer tramite la variabile k?

doppio k=0;
 
Alekseu Fedotov:
doppio k=0;

Non aiuta! Non nel corpo del codice, non nell'inizializzazione, non all'inizio...

 
seny:

funziona così... e non così...

Per capire, bisogna semplificare. Confrontare due espressioni: 100/10/10 = 1 e k=10/10 100/k = 100 ma se k=10*10, allora è corretto

 
Saluti. Potresti per favore dirmi come fare in modo che la linea temporale si estenda al futuro quando l'offset della linea temporale è abilitato?
 
Andrey Sokolov:
Saluti. Potresti dirmi come estendere la linea temporale per il futuro quando l'offset del grafico è abilitato?

Non si può. Le linee verticali possono essere disegnate solo da te - mostrano l'ora in basso.

 

Salve. Potete dirmi come scrivere una condizione per cui: se un ordine aperto ha chiuso a TakeProfit - cancella tutti i rimanenti ordini a mercato; se no (chiuso a Stop Loss) - piazza lo stesso esatto ordine (con lo stesso Stop Loss e Take Profit) come un ordine pendente.

 
6737998:

Salve. Potete dirmi come scrivere una condizione per cui: se un ordine aperto ha chiuso ad un takeprofit - cancella tutti gli ordini a mercato rimanenti; se no (chiuso allo stoploss) - mette lo stesso esatto ordine (con lo stesso stoploss e takeprofit) come un ordine pendente.


Te l'ho detto in un altro thread - lavora con la storia e ha scritto gli operatori di cui hai bisogno per farlo.

 

Oppure potresti scrivere un articolo nella sezione "Articoli" su qualche fenomeno del forex,
e nella parte inferiore dell'articolo si mette una pubblicità per un indicatore a pagamento dal mercato, un indicatore che può essere utilizzato per indagare questo fenomeno. ?

 

Ciao a tutti, ho incontrato un problema...

Il compito è quello di cambiare interattivamente un EA su un grafico. Non sto considerando un'opzione con diversi grafici e diversi EA.

So come usare ChartApplyTemplate e funziona, ma a volte restituisce una risposta falsa perché non può mettere un comando nella coda.

Cos'è questa coda, dove posso leggere qualcosa a riguardo o come posso cancellare questa coda, dato che il mio compito deve avere la priorità su tutti gli altri?

Grazie in anticipo.

PS: Questo non succede con il cambio manuale del modello. Forse allora attraverso winAPI provare... bisogno di scavare, non ho lavorato con questo

ChartApplyTemplate - Chart Operations - MQL4 Reference
ChartApplyTemplate - Chart Operations - MQL4 Reference
  • docs.mql4.com
ChartApplyTemplate - Chart Operations - MQL4 Reference
 
Vasili Taucci:

Ciao a tutti, ho incontrato un problema...

Il compito è quello di cambiare interattivamente un EA su un grafico. Non sto considerando un'opzione con diversi grafici e diversi EA.

So come usare ChartApplyTemplate e funziona, ma a volte restituisce una risposta falsa perché non può mettere un comando nella coda.

Cos'è questa coda, dove posso leggere qualcosa a riguardo o come posso cancellare questa coda, dato che il mio compito deve avere la priorità su tutti gli altri?

Grazie in anticipo.

PS: Questo non succede con il cambio manuale del modello. Forse allora attraverso winAPI provare... Bisogna scavare, non ho lavorato con quello

Date un'occhiata a questo. È per MT5, ma il principio è completamente simile per MT4. Quando si usa ChartApplyTemplate è necessaria una sincronizzazione obbligatoria, che faccio nel ticket come segue

  static bool TemplateApply( const long Chart_ID, const string &Str, const bool Sync = true )
  {
    string TmpStr = Str;

    const bool SyncFlag = (Sync && Chart_ID && (Chart_ID != ::ChartID()) && !::IsStopped());

    if (SyncFlag)
    {
      const color ColorStopLevel = (color)::ChartGetInteger(Chart_ID, CHART_COLOR_STOP_LEVEL);

      if ((bool)(ColorStopLevel >> 24))
        ::ChartSetInteger(Chart_ID, CHART_COLOR_STOP_LEVEL, ColorStopLevel & 0xFFFFFF);

      const int NewColorStopLevel = (int)EXPERT::StringBetween(TmpStr, EXPERT_STOPLEVEL, STRING_END) | (0x01 << 24);

      TmpStr = Str;
      EXPERT::StringReplace(TmpStr, EXPERT_STOPLEVEL, STRING_END, EXPERT_STOPLEVEL + (string)NewColorStopLevel + STRING_END);
    }

    short Data[];
    const bool Res = ::StringToShortArray(TmpStr, Data, 0, ::StringLen(TmpStr)) &&
                     ::FileSave(FILENAME, Data) && ::ChartApplyTemplate((ulong)Chart_ID, FILENAME);

    if (Res && SyncFlag)
    {
      long Value;

      while ((!::IsStopped() && ::ChartGetInteger(Chart_ID, CHART_COLOR_STOP_LEVEL, 0, Value) && (!(bool)((int)Value >> 24))))
        ::Sleep(0);

      ::ChartSetInteger(Chart_ID, CHART_COLOR_STOP_LEVEL, (int)Value & 0xFFFFFF);
    }

    return(Res);
  }
Expert
Expert
  • voti: 12
  • 2017.08.28
  • fxsaber
  • www.mql5.com
Библиотека чтения/записи параметров произвольных советников.
Motivazione: