Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 81

 
Gevorg Hakobyan:
se(v=="NZD")
{
h=(iClose("NZDUSD",p,b)-iOpen("NZDUSD",p,b))/MarketInfo("NZDUSD",MODE_POINT)+
(iOpen("EURNZD",p,b)-iClose("EURNZD",p,b))/MarketInfo("EURNZD",MODE_POINT)+
(iOpen("GBPNZD",p,b)-iClose("GBPNZD",p,b))/MarketInfo("GBPNZD",MODE_POINT)+
(iOpen("AUDNZD",p,b)-iClose("AUDNZD",p,b))/MarketInfo("AUDNZD",MODE_POINT)+
(iClose("NZDJPY",p,b)-iOpen("NZDJPY",p,b))/MarketInfo("NZDJPY",MODE_POINT)+
(iClose("NZDCAD",p,b)-iOpen("NZDCAD",p,b))/MarketInfo("NZDCAD",MODE_POINT)+
(iClose("NZDCHF",p,b)-iOpen("NZDCHF",p,b))/MarketInfo("NZDCHF",MODE_POINT);
}
Non ha molta importanza cosa avete nel vostro codice. Puoi dire a quale DC sei collegato che ottieni zero invece di Point()?
 
sile:

Salve.

Per favore, aiutatemi.

Ora il lotto di ogni ordine seguente sta aumentando in 1, 2, 3, 4, 5...

Voglio che il lotto di ogni ordine aumenti non per ogni ordine, ma in incrementi di 3, quindi 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3...

Il contatore deve essere avviato e riportato al valore iniziale quando viene raggiunta la soglia impostata:
extern double   LotStop        = 0.01;
extern double   Plus_LotStop   = 0.01;
extern double   Plus_N_ORD  = 3;        //каждые N ордеров
void OnTick()
  {
//---
int c=0;
  for (int i=1; i<=OrdersStop; i++)
   {
       if((Close[1]<Open[1]&&Close[2]>Open[2]&&NumberOfPositions(Symbol(), -1,_Magic)<1))
         {
            OPENORDER (OP_BUYSTOP,PriceBS,LOTs,_Magic,i);
            numB++;
            PriceBS = NormalizeDouble(PriceBS+Step_Stop*Point,Digits);
          
            OPENORDER (OP_SELLSTOP,PriceSS,LOTs,_Magic,i);
            numS++;
            PriceSS = NormalizeDouble(PriceSS-Step_Stop*Point,Digits);
         }
      c++;
      if(c==3){LOTs+=Plus_LotStop;c=0;}
    }
  }
 

Potete dirmi se un indicatore chiamato "iSignal" funziona nel terminale, è possibile scoprire da un EA che questo indicatore esiste davvero in qualsiasi finestra o in una finestra con un EA?

 
Vitaly Muzichenko:

Potete dirmi se un indicatore chiamato "iSignal" funziona nel terminale, è possibile scoprire da un EA che questo indicatore esiste davvero in qualsiasi finestra o in una finestra con un EA?

Nella Guida ChartIndicatorName(); E altri che vedrete lì.


ChartIndicatorName

Restituisce il nome breve dell'indicatore per il suo numero nella lista degli indicatori nella finestra del grafico specificato.

stringaChartIndicatorName(
longchart_id,// ID del grafico
intsub_window,// numero della sottofinestra
intindex// indice dell'indicatore nella lista degli indicatori aggiunti alla sottofinestra data
);

Parametri

chart_id

[ID grafico. 0 significa il grafico corrente.

sottofinestra

[Numero di sottofinestra del grafico. 0 significa la finestra principale del grafico.

indice

[Indice dell'indicatore nella lista degli indicatori. Gli indicatori sono numerati a partire da zero, cioè il primo indicatore della lista ha un indice zero. Il numero di indicatori nella lista può essere ottenuto da ChartIndicatorsTotal().

Valore restituito

Nome breve dell'indicatore, che èdefinito nella proprietà INDICATOR_SHORTNAME dalla funzione IndicatorSetString().Per ottenere informazioni sull'errore, chiamate la funzione GetLastError().


Esaminate tutti i grafici e cercate l'indicatore richiesto su di essi. Potete anche definire il numero di indicatori sul grafico, così come il numero di tutte le finestre di un grafico. Lo vedrete nella guida.
 
Vitaly Muzichenko:

Potete dirmi se un indicatore chiamato "iSignal" funziona nel terminale, è possibile scoprire da un EA che questo indicatore esiste davvero in qualsiasi finestra o in una finestra con un EA?

È possibile. Passa attraverso gli indicatori nel ciclo sul grafico necessario e confronta il nome dell'indicatore selezionato con quello dato. La funzione ChartIndicatorName().

Probabilmente, dovrà cercare anche le sottofinestre del grafico, se l'indicatore è nel "seminterrato".

 
Artyom Trishkin:

In Aiuto ChartIndicatorName(); E altri li vedrete anche lì.


ChartIndicatorName

Restituisce il nome dell'indicatore breve per numero nella lista degli indicatori sulla finestra del grafico specificato.

stringaChartIndicatorName(
longchart_id,// ID del grafico
intsub_window,// numero di sottofinestra
intindex// indice dell'indicatore nella lista degli indicatori aggiunti a questa sottofinestra
);

Grazie, stavo cercando proprio questo, e funziona!

E ora indietro) È lo stesso, ma da un indicatore trovare esperto: (c)questo esperto è davvero in qualsiasi finestra, o una finestra con indicatore?

 
Vitaly Muzichenko:

Grazie, stavo cercando proprio questo, e funziona!

E ora indietro) C'è un simile, solo dall'indicatore per trovare l'esperto: (c)questo esperto è davvero in qualsiasi finestra, o una finestra con un indicatore?

Come codifichi in generale?
WindowExpertName - Операции с графиками - Справочник MQL4
WindowExpertName - Операции с графиками - Справочник MQL4
  • docs.mql4.com
WindowExpertName - Операции с графиками - Справочник MQL4
 
Vitalie Postolache:
Come fai a codificare?
Questo lo conosco, ma non sa come cercare sui grafici di altre persone.
 
Vitaly Muzichenko:
Questo lo conosco, ma non può cercare sulla carta di qualcun altro.

Non solo non sa cercare sul grafico di qualcun altro, ma sul proprio grafico trova solo il "suo" indicatore, script o esperto, quello in cui è prescritta questa funzione.

Non l'ho controllato, ma ho provato a passare attraverso il ciclo dei grafici.

ChartGetString(chart_id, CHART_EXPERT_NAME)
Penso che dovrebbe funzionare.
 
Alexey Viktorov:

Non solo non sa cercare sul grafico di qualcun altro, ma sul proprio grafico trova solo il "suo" indicatore, script o esperto, quello in cui è prescritta questa funzione.

Non l'ho controllato, ma l'ho provato in looping attraverso i grafici

ChartGetString(chart_id, CHART_EXPERT_NAME)
Penso che dovrebbe funzionare.

Sì, funziona e trova da esperto indicatore per nome. Ma ora una domanda: ne esiste uno simile, ma per i quattro, e preferibilmente multipiattaforma?

Grazie!

Motivazione: