Domande dai principianti MQL4 MT4 MetaTrader 4 - pagina 256

 
atztek #:
Sul mio vecchio portatile con processore i3 ho ancora WinXP 32 bit, non supportato da MT5. Recentemente ho aumentato la memoria fino a 6 Gb, vorrei installare un sistema operativo a 64 bit con MT4 e MT5. Qual è preferibile - Win7 o Win8.1

Preferisco il 7. L'ufficio ha un 8, un 10 e un 7. I terminali del 7 sono più stabili. Per ragioni sconosciute, i tester del 7 sono più veloci sui computer deboli. 8ka non è affatto transitorio. Mangia la maggior parte delle risorse. 10 richiede più risorse per se stesso.

 
atztek #:
Il mio vecchio portatile con processore i3 aveva ancora installato WinXP 32 bit, non supportato da MT5. Recentemente ho aumentato la memoria fino a 6 Gb, vorrei installare un sistema operativo a 64 bit che supporti MT4 e MT5. Qual è preferibile - Win7 o Win8.1?

Vai sul sito web del produttore del tuo portatile e vedi per quale sistema operativo massimo sono i driver ufficiali e quello sarà il tuo sistema operativo preferito. Se i driver sono per Win 8.1 puoi provare Win 10. Se i driver finiscono in Win 7 allora non c'è molta scelta.

 

Buon pomeriggio, potete per favore aiutarmi.

Ho bisogno di aggiungere un take profit a questo EA e di visualizzare i parametri da cambiare quando l'EA viene eseguito.

Ci sono due avvertimenti sul valore di ritorno di 'OrderClose' dovrebbe essere controllato anche per favore correggete


extern double Lots = 0.1;

extern double MaximumRisk = 0,3;

extern double DecreaseFactor = 100;

doppio st1,st2;

//+------------------------------------------------------------------+

//| Calcolare le posizioni aperte

//+------------------------------------------------------------------+

int CalcolaOrdiniCorrenti(simbolo stringa)

{

int buys=0,sells=0;

//----

for(int i=0;i<OrdersTotal();i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;

se(OrderSymbol()==Symbol())

{

se(OrderType()==OP_BUY) compra++;

se(OrderType()==OP_SELL) vende++;

}

}

//---- volume degli ordini di ritorno

if(buys>0) return(buys);

else return(-sells);

}

//+------------------------------------------------------------------+

//| Calcolare la dimensione ottimale del lotto

//+------------------------------------------------------------------+

doppio LottiOttimizzati()

{

doppio lotto=Lotti;

int orders=HistoryTotal(); // totale degli ordini della storia

int perdite=0; // numero di ordini di perdite senza una pausa

//---- selezionare la dimensione del lotto

lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,3);

//---- calcolare il numero di ordini di perdite senza una pausa

se(Fattore di diminuzione>0)

{

for(int i=ordini-1;i>=0;i--)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Errore nella storia!"); break; }

if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continua;

//----

if(OrderProfit()>0) break;

se(OrderProfit()<0) perdite++;

}

if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);

}

//---- restituire la dimensione del lotto

se(lotto<0,1) lotto=0,1;

ritorno(lotto);

}

//+------------------------------------------------------------------+

//controllare le condizioni di ordine aperto

//+------------------------------------------------------------------+

void CheckForOpen()

{

int res;

se(Volume[0]>1) ritorno;


//---- buy -----------------------

se ((iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_MAIN,0)>iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_SIGNAL,0))

if ((Open[0]<Open[1])&&(Close[0]<Close[1])

//

{

res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,15,0,",0,0,0,Blue);

ritorno;

}

//---- vendere ------------------------

se ((iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_MAIN,0)<iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_SIGNAL,0))

if((Open[0]>Open[1])&&(Close[0]>Close[1]))

{

res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,15,0,",0,0,Red);

ritorno;

}

}

//------------Закрытие позиций----------------------------------------

void CheckForClose2()

{

if(OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);

Se(OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3,Blue);

//CheckForOpen();

}


//

//+------------------------------------------------------------------+

//controllare le condizioni di chiusura dell'ordine

//+------------------------------------------------------------------+

void CheckForClose1()

{

se(Volume[0]>1) ritorno;

//controllare la perdita

se ((AccountProfit()<0)&&(MathAbs(AccountProfit())>=(AccountMargin()*MaximumRisk)))

{

CheckForClose2();

Stampa("perdita", AccountProfit());

}/**/

//---- controllare il tipo di ordine

if(OrderType()==OP_BUY)

{

se ((iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_MAIN,0)<iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_SIGNAL,0))

if ((Open[0]>Open[1])&&(Close[0]>Close[1]))

CheckForClose2();

}

if(OrderType()==OP_SELL)

{

se ((iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_MAIN,0)>iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_SIGNAL,0))

if ((Open[0]<Open[1])&&(Close[0]<Close[1]))

CheckForClose2();

}


}

//+------------------------------------------------------------------+

//| Iniziare la funzione |

//+------------------------------------------------------------------+


void start()

{


//---- calcolare gli ordini aperti in base al simbolo corrente

if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();

else CheckForClose1();

//---

}

//+-----------------------------------------------+

MetaQuotes — разработчик торговых платформ для брокеров, банков, бирж и хедж-фондов
MetaQuotes — разработчик торговых платформ для брокеров, банков, бирж и хедж-фондов
  • www.metaquotes.net
Торговая платформа MetaTrader 5 - это бесплатный инструмент трейдера, позволяющий торговать на форексе и фондовых биржах
 
bob88 #:



extern double Lots               = 0.1;

extern double MaximumRisk        = 0.3;

extern double DecreaseFactor     = 100;

extern int stopLoss = 15;
extern int takeProfit = 30;


//+------------------------------------------------------------------+

//| Check for open order conditions                                  |

//+------------------------------------------------------------------+

void CheckForOpen()

  {

  int res;
  double openPrice, sl, tp;

 if(Volume[0]>1) return;



//---- покупаем -----------------------

  

  if ( (iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_MAIN,0)>iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_SIGNAL,0))) 

     if  ((Open[0]<Open[1])&&(Close[0]<Close[1])) 

    

  //  

     {
      openPrice = NormalizeDouble(Ask, Digits);
      sl = NormalizeDouble(openPrice - stopLoss * Point, Digits);
      tp = NormalizeDouble(openPrice + takeProfit * Point, Digits);
      res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),openPrice,3,sl,tp,"",0,0,Blue);

      return;

     }

//---- продаем ------------------------

if ((iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_MAIN,0)<iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_SIGNAL,0)))  

    if((Open[0]>Open[1])&&(Close[0]>Close[1]))

     {
      openPrice = NormalizeDouble(Bid, Digits);
      sl = NormalizeDouble(openPrice + stopLoss * Point, Digits);
      tp = NormalizeDouble(openPrice - takeProfit * Point, Digits);
      res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),openPrice,3,sl,tp,"",0,0,Red);

      return;

     }

     

  }

Aggiunto il calcolo di SL e TP, ma sarebbe bello aggiungere un controllo per loro. Potete leggere come fare questo nell'articolohttps://www.mql5.com/ru/articles/2555#invalid_SL_TP_for_position.

Il suo avvertimento non è critico. Il risultato di OrderClose viene semplicemente ignorato, da cui l'avvertimento. Potete, per esempio, fare in modo che la funzione CheckForClose2 restituisca il risultato di OrderClose. Oppure si può lasciare tutto com'è.

Un'altra cosa che ho notato è che i nomi delle funzioni CheckForClose2,CheckForOpen, ecc. sono strani. E tu li fai eseguire operazioni commerciali.

Какие проверки должен пройти торговый робот перед публикацией в Маркете
Какие проверки должен пройти торговый робот перед публикацией в Маркете
  • www.mql5.com
Все продукты Маркета перед публикацией проходят обязательную предварительную проверку для обеспечения единого стандарта качества. В этой статье мы расскажем о наиболее частых ошибках, которые допускают разработчики в своих технических индикаторах и торговых роботах. А также покажем как самостоятельно проверить свой продукт перед отправкой в Маркет.
 
Ciao a tutti. Qualcuno può aiutare a modificare l'EA. Ho bisogno di rimuovere la funzione di apertura degli ordini, così l'EA non aprirà gli ordini da solo, ma lavorerà solo con gli ordini aperti manualmente. Molte grazie in anticipo.
File:
 
Иван Макаров #:
Ciao a tutti. Qualcuno può aiutarmi a modificare l'EA. Devo rimuovere la funzione di apertura degli ordini in modo che l'EA non apra gli ordini da solo ma lavori solo con gli ordini aperti manualmente. Molte grazie in anticipo.

Rimuovi la funzione di apertura degli ordini e imposta magic a 0. Il robot raccoglierà gli ordini aperti manualmente e li seguirà. Se vogliamo che il robot segua solo i singoli ordini, e non tutti in fila, allora facciamo l'entrata in Acquisto e Vendita, per esempio, premendo il pulsante appropriato che il robot dovrebbe creare ed elaborare nell'evento OnChartEvent CHARTEVENT_OBJECT_CLICK di ognuno di essi. Magic in questo caso deve essere maggiore di 0 per poter lavorare solo con i propri ordini.

 
Saluti. Qualcuno può consigliarmi come aggiungere la funzione di trading a tempo all'EA di mt4. Voglio che il mio EA lavori per esempio dalle 00.00 alle 23.00 e non faccia nulla per il resto di un'ora. Forse qualcuno ha un pezzo di codice e come implementarlo. Ho una buona idea di come implementare questo nel mio EA.
 
Иван Макаров trading a tempo all'EA di mt4. Voglio che il mio EA lavori dalle 00.00 alle 23.00 e non faccia nulla per l'ora successiva. Forse qualcuno ha un pezzo di codice e come implementarlo. Ho una buona idea di come implementare questo nel mio EA.

https://www.mql5.com/ru/forum/131859/page9#434297

isTradeTimeString()

isTradeTimeInt()

Только "Полезные функции от KimIV".
Только "Полезные функции от KimIV".
  • 2011.02.18
  • www.mql5.com
Все функции взяты из этой ветки - http://forum.mql4...
 

Salve.

Un tale inconveniente... Ne sto testando uno! Esperto su 3 computer. Su 2 di essi funzionano accuratamente, mentre su uno di essi ottengo sempre qualche tipo di bug nei calcoli - in generale non riesce a calcolare correttamente lo stop loss o il falso trigger.

L'hardware non è nuovo, ma nemmeno vecchio.

Qualcuno ha incontrato qualcosa di simile?

 
Zalevsky1234 stop loss o il falso trigger.

L'hardware non è nuovo, ma nemmeno vecchio.

Qualcuno ha avuto problemi con questo?

Tutti e tre sono collegati allo stesso server broker/dealer? (Voglio dire, è la stessa storia?) Se no, quello è il primo posto dove guardare.

Motivazione: