Domande dai principianti MQL4 MT4 MetaTrader 4 - pagina 190

 
gyulnara.kosareva:
Ciao, posso installare un EA senza file mql4 se ho solo il file ex dell'EA?

Sì, è a questo che serve il file .ex

 
Ciao a tutti.
Avevo l'app MT4 versione 400.1129 installata sul mio Android, fino al 29.10.2019 l'app funzionava come un orologio. Venerdì ho iniziato ad aprirlo sul mio telefono, lo splash screen lampeggiava che stavo aprendo un nuovo conto demo e immediatamente l'applicazione si è chiusa. E sono finito sul desktop. La prossima dozzina di tentativi si è conclusa con lo stesso risultato. Ho tolto il terminale, ho scaricato il nuovo terminale dalla playlist, l'ho installato e l'ho eseguito con lo stesso risultato: l'applicazione è andata in crash. Ho scaricato Rojo forex MT4 dal mercato, l'ho installato e lanciato e funziona come un orologio. Ho anche scaricato la versione MT5 500.1780 da Market, l'ho installata ed eseguita, ho aperto un conto demo e tutto funziona bene.
Per favore, consigliatemi cosa fare se voglio che MT4 funzioni di nuovo sul mio telefono! Per favore.
 

Ciao a tutti, Potete per favore dirmi cosa c'è che non va? Il tester di strategia nel mercato si lamenta della requote -NEW_ORDER(): lot=0.20; POSITION_TYPE_BUY(EURUSD); err: 4756/Failed tosend trade request; retcode: 10004/Requote;

Dove posso leggere di più su questo errore e su come risolverlo?

 
Nikolai Konstantinov:

Ciao a tutti, Potete per favore dirmi cosa c'è che non va? Il tester di strategia nel mercato si lamenta della requote -NEW_ORDER(): lot=0.20; POSITION_TYPE_BUY(EURUSD); err: 4756/Failed tosend trade request; retcode: 10004/Requote;

Dove posso leggere di più su questo errore e su come risolverlo?


Questo non è un errore ma una situazione di mercato.
1. aggiornare i prezzi prima di inviare una transazione per l'esecuzione.
2. Riaprire dopo la riparazione
3. Aumentare lo slittamento
 
Vladislav Andruschenko:

Non è un errore, è una situazione di mercato.
1. Aggiorna i prezzi prima di inviare una transazione per l'esecuzione.
2. Riaprire dopo la riparazione.
3. Aumentare lo slittamento

Grazie, ma tutto quello che hai scritto è già stato considerato. C'è qualcos'altro da considerare?

 

Ciao, per favore aiutatemi!

All'improvviso MT4 ha iniziato a bloccarsi. Tutti da diverse società di intermediazione.

All'avvio il terminale si blocca. In Manager dice davanti ad esso "non risponde". Non risponde a nulla, Nella parte inferiore del pannello MT è segnato che non c'è connessione.

Riavviare i terminali, cambiarli da diversi broker, rimuovere e reinstallare, pulire i dati con il programma Clean, spegnere e riaccendere il computer - non ha dato risultato.

Resta da reinstallare il sistema operativo, ma così riluttante.

Forse qualcuno ha avuto una cosa simile?

Qualche consiglio?

 
odyn:

Rimane da reinstallare il sistema operativo, ma così riluttante.

In alternativa, su una macchina virtuale installare il sistema operativo e il terminale, ho installato Oracle VM VirtualBox senza problemi ci MT4/MT5 lavoro

se si tratta di un problema con il sistema operativo, è necessario reinstallarlo.


L'ho controllato io stesso e funziona con MT4 e MT5 senza problemi.

 
odyn:

Ciao, per favore aiutatemi!

All'improvviso MT4 ha iniziato a bloccarsi. Tutti da diverse società di intermediazione.

All'avvio il terminale si blocca. In Manager dice davanti ad esso "non risponde". Non risponde a nulla, nella parte inferiore del pannello MT; è segnato che non c'è connessione.

Riavviare i terminali, cambiarli da diversi broker, rimuovere e reinstallare, pulire i dati con il programma Clean, spegnere e riaccendere il computer - non ha dato risultato.

Resta da reinstallare il sistema operativo, ma così riluttante.

Forse qualcuno ha avuto una cosa simile?

Si prega di consigliare chi può farlo.

Internet Explorer potrebbe essere la radice del problema

dalle circostanze - deve essere aggiornata o rimandata indietro :-) E non permettere assolutamente tutti i tipi di add-on, plugin ed estensioni.

Gli autori hanno deciso che il componente explorer ha dominato per la visualizzazione di marketplace/segnali/news/chat, ma l'explorer stesso è una beta perpetua. E i suoi problemi "interferiscono" con il terminale

 

Buona giornata a tutti.

Possiamo cambiare la condizione nel codice: "Expert Advisor apre una posizione a seconda della chiusura dell'ultima posizione. Se non c'era nessuna posizione, si apre a seconda della direzione della candela precedente" e dovremmo cambiarla con lapossibilità di piazzare 2 ordini pendenti ad una certa distanza dal prezzo corrente, e, quando uno di essi scatta, il 2° ordine sarà cancellato. Il resto dell'algoritmo rimane invariato.

L'ho modificato io stesso, ma non sono riuscito ad ottenere una versione funzionante.

#property description "Советник открывает позицию в зависимости от закрытия прошлой позиции. Если позиции не было то в зависимости от направления прошлой свечи"
#property description "При достижение Т/P следующий ордер открывается в эту же сторону"
#property description "При достижение S/L следующий открывается в противоположную сторону"
//+------------------------------------------------------------------
#property  show_inputs
//+------------------------------------------------------------------
enum TT {BUY, SELL, BUYLIMIT, SELLLIMIT, BUYSTOP, SELLSTOP};
enum YN {No,Yes};
//+------------------------------------------------------------------
extern TT     Type         = BUY;
extern double Price        = 0; 
extern int    Distance     = 0;
extern int    stoploss     = 300,
              takeprofit   = 300;
extern double risk         = 0.01; //процент от депозита для рассчета объема первой позиции
extern double KoeffMartin  = 2.0;
extern int    OkrLOT       = 2;//округление лота
extern int    slippage     = 3;//Максимально допустимое отклонение цены для рыночных ордеров
extern int    MagicNumb    = 77;//Magic

double MINLOT,MAXLOT;                                  
//+------------------------------------------------------------------+
int OnInit()
{
   MAXLOT = MarketInfo(Symbol(),MODE_MAXLOT);
   MINLOT = MarketInfo(Symbol(),MODE_MINLOT);
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
void OnTick()
{
   double OSL,OTP,OOP,SL,TP;
   int tip;
   double STOPLEVEL=MarketInfo(Symbol(),MODE_STOPLEVEL);
   for (int i=0; i
   {
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {
         if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumb)
         {
            tip = OrderType(); 
            OSL = NormalizeDouble(OrderStopLoss(),Digits);
            OTP = NormalizeDouble(OrderTakeProfit(),Digits);
            OOP = NormalizeDouble(OrderOpenPrice(),Digits);
            SL=OSL;TP=OTP;
            if (tip==OP_BUY)             
            {  
               if (OSL==0 && stoploss>=STOPLEVEL && stoploss!=0)
               {
                  SL = NormalizeDouble(OOP - stoploss   * Point,Digits);
               } 
               if (OTP==0 && takeprofit>=STOPLEVEL && takeprofit!=0)
               {
                  TP = NormalizeDouble(OOP + takeprofit * Point,Digits);
               } 
               if (SL != OSL || TP != OTP)
               {  
                  if (!OrderModify(OrderTicket(),OOP,SL,TP,0,White)) Print("Error OrderModify <<",GetLastError(),">> ");
               }
            }                                         
            if (tip==OP_SELL)        
            {
               if (OSL==0 && stoploss>=STOPLEVEL && stoploss!=0)
               {
                  SL = NormalizeDouble(OOP + stoploss   * Point,Digits);
               }
               if (OTP==0 && takeprofit>=STOPLEVEL && takeprofit!=0)
               {
                  TP = NormalizeDouble(OOP - takeprofit * Point,Digits);
               }
               if (SL != OSL || TP != OTP)
               {  
                  if (!OrderModify(OrderTicket(),OOP,SL,TP,0,White)) Print("Error OrderModify <<",GetLastError(),">> ");
               }
            } 
            return;
         }
      }
   }
   tip=-1;
   double Lot=0;
    for (i=OrdersHistoryTotal()-1; i>=0; i--)
   {
      if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
      {
         if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumb)
         {
            if (OrderProfit()<0) 
            {
               Lot=lot(OrderLots(),KoeffMartin);
               tip=OrderType();
            }
            else 
            {
               Lot=lot(0,1);
               if (OrderType()==OP_BUY)  tip=OP_SELL;
               if (OrderType()==OP_SELL) tip=OP_BUY;
            }
            break;
         }
      }
   }

   if (tip==-1)
   {
      Lot=lot(0,1);
      if (Open[1]>Close[1]) tip=OP_BUY;
      else tip=OP_SELL;
   }
   if (tip==OP_BUY) if (OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bi  d,Digits),slippage,0,0,NULL,MagicNumb,Blue)!=-1) Comment("Open Sell");
   if (tip==OP_SELL) if (OrderSend(Symbol(),OP_BUY ,Lot,NormalizeDouble(Ask,Digits),slippage,0,0,NULL  ,MagicNumb,Blue)!=-1) Comment("Open Buy");                               
}
//--------------------------------------------------------------------

double lot(double l,double k)

{

   double ML = AccountFreeMargin()/MarketInfo(Symbol(),MODE_MARGINREQUIRED);

   if (k==1) l = ML*risk/100;
   else l = NormalizeDouble(l*k,OkrLOT);
   if (l>ML) l = ML;
   if (l>MAXLOT) l = MAXLOT;
   if (l
   return(l);
}
//-----------------------------------------------------------------
            {
               Lot=lot(0,1);
               if (OrderType()==OP_BUY)  tip=OP_SELL;
               if (OrderType()==OP_SELL) tip=OP_BUY;
            }
            break;
         }
      }
   }

   if (tip==-1)
   {
      Lot=lot(0,1);
      if (Open[1]>Close[1]) tip=OP_BUY;
      else tip=OP_SELL;
   }
   
   if (tip==OP_BUY) if (OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bi  d,Digits),slippage,0,0,NULL,MagicNumb,Blue)!=-1) Comment("Open Sell");
   if (tip==OP_SELL) if (OrderSend(Symbol(),OP_BUY ,Lot,NormalizeDouble(Ask,Digits),slippage,0,0,NULL  ,MagicNumb,Blue)!=-1) Comment("Open Buy");                                 
}
//--------------------------------------------------------------------
double lot(double l,double k)
{
   double ML = AccountFreeMargin()/MarketInfo(Symbol(),MODE_MARGINREQUIRED);
   if (k==1) l = ML*risk/100;
   else l = NormalizeDouble(l*k,OkrLOT);
   if (l>ML) l = ML;
   if (l>MAXLOT) l = MAXLOT;
   if (l
   return(l);
}
//-----------------------------------------------------------------
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Приказы на проведение торговых операций оформляются ордерами. Каждый ордер имеет множество свойств для чтения, информацию по ним можно получать с помощью функций Идентификатор позиции, который ставится на ордере при его исполнении. Каждый исполненный ордер порождает сделку, которая открывает новую или изменяет уже существующую позицию...
File:
SSSR_v.1.mq4  11 kb
 
Cercherò di riformulare l'ultimo post:

//--------------------------------------
Secondo l'algoritmo, l'Expert Advisor apre una posizione in base alla chiusura di una posizione precedente.
Se non c'era nessuna posizione, si apre a seconda della direzione dell'ultima candela.

Questo algoritmo dovrebbe essere cambiato in:

Comprate:

Inserisci 2 ordini pendenti BuyStop al prezzo specificato nelle impostazioni e SellStop al prezzo specificato nelle impostazioni.
Non appena il prezzo raggiunge uno degli ordini di stop, si sposta in una posizione di mercato con ТР e SL impostati. L'ordine che non si è attivato viene cancellato.

Il resto dell'algoritmo rimane invariato, cioè "Quando il TP/P viene raggiunto, l'ordine successivo viene aperto nella stessa direzione".
"Quando S/L viene raggiunto, l'ordine successivo viene aperto nella direzione opposta"
//---------------------------------------------------
Motivazione: