Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 809

 
pycha:

Ciao, ho cercato nella documentazione ma non l'ho trovato. la mia domanda è questa: posso cambiare questa immagine all'avvio dell'EA con il mio logo?

#proprietà icona "\\\\Images\\xxx.ico";
 
evillive:
#proprietà icona "\\\\Images\\\\xxx.ico";

E, dopo la compilazione, il file icona sarà incorporato nel file *.ex4 e non ci sarà bisogno di spostare il file icona dopo il file compilato.
 
grazie)))
 
roymax:
e non è stato risolto in alcun modo?

Come potete vedere.

Tuttavia, il modo più logico e più semplice di proxy è quello di vietare il cambio di strumento della finestra MT. Quindi suggerisco di considerarlo un bug :)

 
Il mio Expert Advisor analizza i grafici per un certo numero di mesi, ma ci sono grafici che restituiscono l'intera storia su un grafico al minuto, e ci sono grafici che non mostrano più di un mese e mezzo, e anche questo è se si scorre il grafico indietro manualmente, non scorre nemmeno oltre una certa data.
 
pycha:
Il mio Expert Advisor analizza il grafico per un certo numero di mesi, ma ci sono grafici che restituiscono l'intero storico nel grafico a minuti, e ci sono grafici che non vogliono restituire più di un mese e mezzo, e anche questo è se si scorre il grafico indietro manualmente, anche oltre una certa data non si scorre manualmente.
Il broker decide esattamente quanta storia dare. Se il numero massimo di barre è impostato nelle impostazioni del terminale, e ce ne sono meno sul grafico, allora il broker non ne darà di più.
 
Ho capito, grazie.
 

Ciao Cari utenti del forum. Vorrei fare una richiesta. Qualcuno potrebbe postare un pezzo di codice con una funzione iEnvelopesOnArray() funzionante? Tutti i miei tentativi di domarlo finora sono stati infruttuosi. Ho il sospetto che sia colpa degli sviluppatori. Ecco un indicatore per controllare il suo lavoro.

//+------------------------------------------------------------------+
//|                                            Tester_EnvOnArray.mq4 |
//|     Copyright 2005 г. до нашей эры, MetaQuotes Software Company. |
//|                                              https://www.mql4.com |
//+------------------------------------------------------------------+
#property copyright   "2005 г. до нашей эры, MetaQuotes Software Company."
#property link        "https://www.mql4.com"
#property description "Пример индикатора для проверки работы функции iEnvelopesOnArray()"
#property strict

//--- indicator settings
#property  indicator_chart_window
#property  indicator_buffers 2
#property   indicator_color1  Green
#property   indicator_color2  Red

//--- indicator buffers
double     ExtEnvBuffer[];
double     ExtPriceBuffer[];

//--- bars minimum for calculation
#define  DATA_LIMIT  100

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit(void)
  {
  IndicatorShortName("EnvOnArr");
  
  //--- 1 additional buffer are used for counting.
  IndicatorBuffers(2);
  IndicatorDigits(Digits + 2);
  
  //--- drawing settings
  SetIndexStyle(0, DRAW_LINE);
  SetIndexDrawBegin(0, DATA_LIMIT);
  
  SetIndexStyle(1, DRAW_NONE);
  SetIndexDrawBegin(1, DATA_LIMIT);
  
  //--- all indicator buffers mapping
  SetIndexBuffer(0, ExtEnvBuffer);
  SetIndexBuffer(1, ExtPriceBuffer);
  
  //--- name for DataWindow and indicator subwindow label
  SetIndexLabel(0, NULL);
  SetIndexLabel(1, NULL);
  }
  
//+------------------------------------------------------------------+
//| EnvelopesOnArray                                                 |
//+------------------------------------------------------------------+
int OnCalculate (const int rates_total,
                 const int prev_calculated,
                 const datetime & time[],
                 const double & open[],
                 const double & high[],
                 const double & low[],
                 const double & close[],
                 const long & tick_volume[],
                 const long & volume[],
                 const int & spread[])
  {
  int    i, limit;
  double prev = 0.0, Deviation = 1;
  
  //--- check for rates total
  if(rates_total <= DATA_LIMIT)
    return(0);
    
  //--- last counted bar will be recounted
  limit = rates_total - prev_calculated;
  
  if(prev_calculated > 0)
    {
    limit++;
    }
    
  //--- price counted in the 2-nd additional buffer
  for(i=0; i<limit-1; i++)
    ExtPriceBuffer[i] = close[i];
                       
  //--- price counted in the 1-st additional buffer
  for(i=0; i<limit-1; i++)
    ExtEnvBuffer[i] = iEnvelopesOnArray(ExtPriceBuffer, 0, 5, MODE_SMA, 0, 1, MODE_UPPER, i);
  
  //--- done
  return(rates_total);
  }
  
//+------------------------------------------------------------------+
 

Ciao a tutti. Sto ricevendo errori durante il test:

2014.12.25 18:04:31.125 2014.11.03 00:00 Test3 EURUSD,H4: ticket non valido per la funzione OrderModify

2014.12.25 18:04:31.125 2014.11.03 00:00 Test3 EURUSD,H4: OrderModify errore 4051

Ho ricontrollato molte volte, non c'è nessun errore (per quanto posso vedere).

Il fallimento avviene in questa parte del programma:

ModifyBuy, ModifySell, SelectBuy, SelectSell - hanno tipo bool

SendBuy, SendSell-int , int TP = 30


while(true)

 {

  

  SPREAD=MarketInfo(Symb,MODE_SPREAD);

  SelectBuy=OrderSelect(OrderTicketBuy,SELECT_BY_TICKET);//buy

  RefreshRates();

  if(NormalizeDouble(OrderOpenPrice()+TP*Point,Digits)<NormalizeDouble(Ask,Digits))

  {

  ModifyBuy=OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(10-SPREAD)*Point,Bid+(30- SPREAD)*Point,0,0); 

  R=1;

  break;

  }//if2

    

  Timen=OrderCloseTime();

  if(Timen>0)

  {

  //--------------------------  

    Stop=StopLevel(Symb);

   StopLong();//значение Long2

   StopLoss_Func();//значение SL

//--------------------------  

   SendBuy=OrderSend(Symb,OP_BUYSTOP,Lote,Ask+Long2*Point,1,Bid-SL*Point,NULL);

   for(i=1;i>OrdersTotal();i++)

  {

   if(OrderSelect(i-1,SELECT_BY_POS,MODE_TRADES)==true)//Проверяем есть ли ордер

    {

     if(OrderSymbol()!=Symb) continue;     

     if(OrderType()==4)

      {

      OrderTicketBuy=OrderTicket();

      break;

      }

      else

      {

      continue;

      } 

     }

    }   

    continue;  

  }//if2

  

  SelectSell=OrderSelect(OrderTicketSell,SELECT_BY_TICKET,MODE_TRADES);//sell

  RefreshRates();

  if(NormalizeDouble(OrderOpenPrice()-TP*Point,Digits)>NormalizeDouble(Bid,Digits))

  {

   

   ModifySell=OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(10-SPREAD)*Point,Ask-(30- SPREAD)*Point,0,0);

   R=2;

   break; //спред

  }//if2

  

   Timen=OrderCloseTime();

  if(Timen>0)

  {

 //--------------------------  

    Stop=StopLevel(Symb);

   StopLong();

   StopLoss_Func();

//--------------------------  

   SendSell=OrderSend(Symb,OP_SELLSTOP,Lote,Bid-Long2*Point,1,Ask+SL*Point,NULL);

    for(i=1;i>OrdersTotal();i++)

  {

   if(OrderSelect(i-1,SELECT_BY_POS,MODE_TRADES)==true)//Проверяем есть ли ордер

    {

     if(OrderSymbol()!=Symb) continue;     

     if(OrderType()==6)

      {

      OrderTicketSell=OrderTicket();

      break;

      }

      else

      {

      continue;

      } 

     }

    }   

    continue; 

  }//if2

}//while1



Se avete bisogno di tutto il codice, qui


File:
test3_1.mq4  15 kb
 
Signori! Puoi dirmi il codice che fermerà il test di un EA quando non c'è abbastanza margine per aprire una posizione?
Grazie!
Motivazione: