FORTI Si prega di aiutare - pagina 25

 
non l'ho trovato sul forum, qualcuno può dirmi come risolvere il problema della "convergenza incompleta dell'applicazione FOK"?
 
anatolev:
Non l'ho trovato sul forum, forse qualcuno mi dirà come risolvere il problema dell'"ordine FOK incompleto".

Buon pomeriggio!

Pensi che tutti qui siano chiaroveggenti?

Come posso dirle qualcosa? Non esiste un terminale MT4 o MT5,

Nessun codice che si usa quando si invia un ordine, nessun FORTS o mercato FOREX!

 
Mikalas:

Buon pomeriggio!

Pensi che tutti qui siano chiaroveggenti?

Come posso dirle qualcosa? Non esiste un terminale MT4 o MT5,

Nessun codice che si usa quando si invia un ordine, nessun FORTS o mercato FOREX!

Forti, e il terminale rispettivamente il 5° codice EA è generato da wizard, medie semplici


 
anatolev:

Dov'è il codice?

Come si invia l'ordine?

P/S Il codice viene inserito premendo il pulsante SRC

 
Mikalas:

Dov'è il codice?

Come si invia l'ordine?

P/S Il codice viene inserito premendo il pulsante SRC

//+------------------------------------------------------------------+
//|                                                   CrossMA(3).mq5 |
//|                                                             stas |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "stas"
#property link      "http://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Include                                                          |
//+------------------------------------------------------------------+
#include <Expert\Expert.mqh>
//--- available signals
#include <Expert\MyFirstSignal\Ma_Cross.mqh>
//--- available trailing
#include <Expert\Trailing\TrailingNone.mqh>
//--- available money management
#include <Expert\Money\MoneyFixedLot.mqh>
//+------------------------------------------------------------------+
//| Inputs                                                           |
//+------------------------------------------------------------------+
//--- inputs for expert
input string         Expert_Title             ="CrossMA(SI)"; // Document name
ulong                Expert_MagicNumber       =13607;        // 
bool                 Expert_EveryTick         =false;        // 
//--- inputs for main signal
input int            Signal_ThresholdOpen     =11;           // Signal threshold value to open [0...100]
input int            Signal_ThresholdClose    =10;           // Signal threshold value to close [0...100]
input double         Signal_PriceLevel        =4.0;          // Price level to execute a deal
input double         Signal_StopLevel         =300.0;         // Stop Loss level (in points)
input double         Signal_TakeLevel         =1000.0;         // Take Profit level (in points)
input int            Signal_Expiration        =4.0;            // Expiration of pending orders (in bars)
input int            Signal_MaCross_FastPeriod=8;           // My_MA_Cross(13,MODE_SMA,21,...) Period of fast MA
input ENUM_MA_METHOD Signal_MaCross_FastMethod=MODE_SMA;     // My_MA_Cross(13,MODE_SMA,21,...) Method of fast MA
input int            Signal_MaCross_SlowPeriod=21;           // My_MA_Cross(13,MODE_SMA,21,...) Period of slow MA
input ENUM_MA_METHOD Signal_MaCross_SlowMethod=MODE_SMA;     // My_MA_Cross(13,MODE_SMA,21,...) Method of slow MA
input double         Signal_MaCross_Weight    =1.0;          // My_MA_Cross(13,MODE_SMA,21,...) Weight [0...1.0]
//--- inputs for money
input double         Money_FixLot_Percent     =0.0;          // Percent
input double         Money_FixLot_Lots        =1.0;          // Fixed volume
//+------------------------------------------------------------------+
//| Global expert object                                             |
//+------------------------------------------------------------------+
CExpert ExtExpert;
//+------------------------------------------------------------------+
//| Initialization function of the expert                            |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- Initializing expert
if(!ExtExpert.Init(Symbol(),Period(),Expert_EveryTick,Expert_MagicNumber))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing expert");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Creating signal
   CExpertSignal *signal=new CExpertSignal;
   if(signal==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating signal");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//---
   ExtExpert.InitSignal(signal);
   signal.ThresholdOpen(Signal_ThresholdOpen);
   signal.ThresholdClose(Signal_ThresholdClose);
   signal.PriceLevel(Signal_PriceLevel);
   signal.StopLevel(Signal_StopLevel);
   signal.TakeLevel(Signal_TakeLevel);
   signal.Expiration(Signal_Expiration);
//--- Creating filter MA_Cross
MA_Cross *filter0=new MA_Cross;
if(filter0==NULL)
  {
   //--- failed
   printf(__FUNCTION__+": error creating filter0");
   ExtExpert.Deinit();
   return(INIT_FAILED);
  }
signal.AddFilter(filter0);
//--- Set filter parameters
filter0.FastPeriod(Signal_MaCross_FastPeriod);
filter0.FastMethod(Signal_MaCross_FastMethod);
filter0.SlowPeriod(Signal_MaCross_SlowPeriod);
filter0.SlowMethod(Signal_MaCross_SlowMethod);
filter0.Weight(Signal_MaCross_Weight);
//--- Creation of trailing object
  CTrailingNone *trailing=new CTrailingNone;
   if(trailing==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating trailing");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Add trailing to expert (will be deleted automatically))
   if(!ExtExpert.InitTrailing(trailing))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing trailing");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Set trailing parameters
//--- Creation of money object
CMoneyFixedLot *money=new CMoneyFixedLot;
   if(money==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating money");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Add money to expert (will be deleted automatically))
   if(!ExtExpert.InitMoney(money))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing money");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Set money parameters
money.Percent(Money_FixLot_Percent);
money.Lots(Money_FixLot_Lots);
//--- Check all trading objects parameters
   if(!ExtExpert.ValidationSettings())
     {
      //--- failed
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Tuning of all necessary indicators
   if(!ExtExpert.InitIndicators())
     {
      //--- failed
      printf(__FUNCTION__+": error initializing indicators");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- ok
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Deinitialization function of the expert                          |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ExtExpert.Deinit();
  }
//+------------------------------------------------------------------+
//| "Tick" event handler function                                    |
//+------------------------------------------------------------------+
void OnTick()
  {
   ExtExpert.OnTick();
  }
//+------------------------------------------------------------------+
//| "Trade" event handler function                                   |
//+------------------------------------------------------------------+
void OnTrade()
  {
   ExtExpert.OnTrade();
  }
//+------------------------------------------------------------------+
//| "Timer" event handler function                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
   ExtExpert.OnTimer();
  }
//+------------------------------------------------------------------+
Ecco il codice, così
 
Il problema si ripresenta, solo che ora ho ridotto l'intervallo di tempo di lavoro come test (in modo che segnalasse più spesso), e quando le condizioni coincidono, si riversa.
 
anatolev:
Il problema è, allora non è, proprio ora come un test ridotto il timeframe di lavoro (in modo che sarebbe segnale più spesso), e quando le condizioni coincidono, versato.

Hai un problema con la scadenza:

input int            Signal_Expiration        =4.0;            // Expiration of pending orders (in bars)

Non c'è una scadenza nei BAR, solo la data.

 
Mikalas:

Hai un problema con la scadenza:

Non ci può essere una scadenza in BAR, solo un datetime

Capito, grazie! E come in questo caso sarebbe corretto, o questa linea può essere esclusa? O forse può essere impostato uguale a zero, ora ho sperimentato:) raggiunto che apre il marcatore all'apertura della seconda barra dopo il segnale, mettere
input double         Signal_PriceLevel        =0.0;          // Price level to execute a deal
Era 4. Dovrei aver capito bene, quando ho impostato 4, il limite era impostato 4 tick meglio del mercato, ora funziona come il mercato.
 
anatolev:
Ho capito, grazie! Se volevo mettere un marcatore sull'apertura della seconda barra dopo il segnale, l'ho impostato a zero, prima era 4. Ho capito bene, quando avevo 4, il limite era impostato a 4 tick meglio del mercato, e ora quando ho impostato zero, funziona come il mercato?

Mi dispiace, ma tutte le librerie standard sono "sintonizzate" per lavorare sul FOREX.

Io, e molti altri, non li uso per lavorare sul FOREX.

Purtroppo non posso aiutarti nell'uso delle librerie standard.

 

Dato che ovviamente ne sai più di me sul trading automatico con MT, forse puoi rispondere a qualche domanda in una volta sola.

1) Esempio: il mio robot ha aperto una posizione e l'ha spostata al giorno di trading successivo. Dato che il mercato è chiuso di notte, chiudo il computer per la notte e lo riaccendo la mattina prima del trading, la domanda è: il robot vedrà la posizione aperta in precedenza dopo aver riavviato il computer e il terminale e continuerà a lavorare sulla posizione, girando, trailing, ecc?

se sì, come lo fa, attraverso il MagicNumber o altrimenti?

2) Se un trade viene aperto dall'Expert Advisor da un computer, e poi un altro computer con lo stesso Expert Advisor viene avviato, continuerà il lavoro iniziato dal primo o semplicemente inizierà il trading "da zero"?