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

 

Ciao, aiutami qui. Il robot di trading, EA, Expert Advisor non funzionano. Ho scaricato tutto il possibile e volevo controllare come funziona il tutto. Ho pensato che il mio deposito fosse troppo piccolo, ma il mio conto demo è lo stesso. Pensavo di avere un piccolo deposito, ma lo stesso su un conto demo.

 
Lilia.solomko:

Ciao, aiutami qui. Trading robot, advisor, Expert Advisor non funzionano. Ho scaricato tutto il possibile e volevo controllare come funziona il tutto. Ho pensato che il mio deposito fosse troppo piccolo, ma il mio conto demo è lo stesso. Pensavo di avere un piccolo deposito ma lo stesso sul mio conto demo.

Come facevi a sapere che il robot non faceva trading? Vi siete assicurati che tutte le condizioni richieste dalla strategia di trading fossero soddisfatte per aprire la posizione? O hai appena piazzato il robot e non ha aperto immediatamente il trade?

 
Lilia.solomko:

Ciao, aiutami qui. Il robot di trading, EA, Expert Advisor non funzionano. Ho scaricato tutto il possibile e volevo controllare come funziona il tutto. Ho pensato che il mio deposito fosse troppo piccolo, ma il mio conto demo è lo stesso. Pensavo di avere un piccolo deposito ma lo stesso su un conto demo.

Non so cosa c'è scritto nelle due schede?


 
Aiutatemi a scrivere una funzione: chiudere gli ordini da un lotto più grande a uno più piccolo (stringa Symbol, int type, bool hand orders, int Magic)
Cioè selezione del simbolo, tipo, se gli ordini a mano sono presi in considerazione, numero magico.
 
Tigerfreerun:
Per favore aiutatemi a scrivere una funzione: chiudere gli ordini da un lotto più grande a uno più piccolo (stringa Symbol, int type, bool hand orders, int Magic)
Cioè selezione di simboli, tipo, se gli ordini a mano sono presi in considerazione, numero magico.

Sì, è pronto all'uso.

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 11.12.2008                                                     |
//|  Описание : Закрытие позиций в порядке сортировки по размерам лотов.       |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента        (    ""       - любой символ,      |
//|                                             NULL      - текущий символ)    |
//|    op - операция                        (    -1       - любая позиция)     |
//|    mn - MagicNumber                     (    -1       - любой магик)       |
//|    sd - Направление сортировки лотов    (MODE_ASCEND  - возрастание,       |
//|                                          MODE_DESCEND - убывание)          |
//+----------------------------------------------------------------------------+
void ClosePosBySortLots(string sy="", int op=-1, int mn=-1, int sd=MODE_DESCEND) {
  double a[][2];                  // Массив лотов и тикетов
  int    i, k=OrdersTotal();      // Счётчик и количество ордеров
  int    p=0;                     // Количество позиций

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (mn<0 || OrderMagicNumber()==mn) {
            p++;
            ArrayResize(a, p);
            a[p-1][0]=OrderLots();
            a[p-1][1]=OrderTicket();
          }
        }
      }
    }
  }

  // вдруг позиций нету, тогда и закрывать нечего
  if (p>0) {
    ArraySort(a, WHOLE_ARRAY, 0, sd);
    for (i=0; i<p; i++) {
      if (OrderSelect(a[i][1], SELECT_BY_TICKET)) {
        // проверим незакрытость на всякий случай,
        // может какая-то позиция уже закрылась по стопу/тейку
        if (OrderCloseTime()==0) ClosePosBySelect();
      }
    }
  }
}
 
Alekseu Fedotov:

Sì, è pronto a partire.

Ho provato ad usarlo, per qualche motivo non funziona.
Dove si trova in questa funzione la chiusura stessa, per quanto posso vedere c'è un riferimento a un'altra funzione?
 
Tigerfreerun:
Ho provato ad usarlo, per qualche motivo non funziona.
Dov'è la chiusura stessa in questa funzione, per quanto posso vedere c'è un riferimento a un'altra funzione?

Sì, c'è una funzione ClosePosBySelect() completa, non solo l'invio di un ordine di compravendita senza controlli di stato e risultato.

Cerca il sito ti darà un link alla funzione ClosePosBySelect() di Kim

 
Tigerfreerun:
Ho provato ad usarlo, per qualche motivo non funziona.
Dove si trova in questa funzione la chiusura stessa, per quanto posso vedere c'è un riferimento a un'altra funzione?

Nell'intestazione di questa funzione c'è un indirizzo web, vai a scaricare tutte le librerie,

Funziona bene.

 

Disegno delle barre orizzontali. L'indicatore correttamente, secondo le coordinate mette delle linee, ma ad un certo punto, su una nuova barra viene messa una linea su un prezzo arbitrario, composta da molti segmenti di diversa lunghezza, sovrapposti l'uno all'altro. Il prezzo dell'impostazione "aliena" non si adatta a nessuna condizione. Da dove vengono, come si possono prevenire?

if(Line)
  {
   n_++;
   Setline(n_,Time[b_u_pbu],High[b_u_pbu],Time[b_u_pbu1],High[b_u_pbu],clrLime);
  }
//
void Setline(int sh,datetime tm,double pr,datetime tm1,double pr1,color clr)
  {
   ObjectCreate("-"+sh,OBJ_TREND,0,tm,pr,tm1,pr1,clr);
   ObjectSet("-"+sh,7,STYLE_SOLID);
   ObjectSet("-"+sh,10,false);
   ObjectSet("-"+sh,6,clr);
   ObjectSet("-"+sh,8,2);
  }
 
bij:

Disegno delle barre orizzontali. L'indicatore correttamente, secondo le coordinate mette delle linee, ma ad un certo punto, su una nuova barra viene messa una linea su un prezzo arbitrario, composta da molti segmenti di diversa lunghezza, sovrapposti l'uno all'altro. Il prezzo dell'impostazione "alieni" non si adatta a nessuna condizione. Da dove vengono, come si possono prevenire?

I nomi delle linee cambiano e quindi la moltitudine di linee.

In questi casi è meglio includere l'orario di apertura del bar nel nome della linea.