[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 288

 
TheXpert писал(а) >>

Tut. L'espressione che hai citato è sicuramente utile.

Grazie!

 
Buona giornata a tutti). Ho il sistema di trading di Grebenshchikov. Funziona nel canale e sul breakout del canale e sull'entrata con ordini pendenti fuori da un piatto. Vorrei testarlo sulla storia e aggiornare la MM con esso. Forse qualcuno ha già implementato questo sistema nel codice? Quali elementi possono essere utilizzati per costruire un tale sistema? Ecco la descrizione del sistema http://www.fx4u.ru/rinki-forex-commodities-cfd-futures-f14/strategii-opitnih-f4/ts-grebenschikova-si-forex-i-mi-t529.html
 

Ho una domanda

si può fare un convertitore di periodo per visualizzare un grafico medio delle quattro coppie principali ...

Considerando che il dollaro-yen ha un prezzo di, diciamo, 101,50, tradurlo nello stato di 1,0150, e poi usarlo per costruire un grafico medio ...

Sì e sarebbe bene usare questo grafico medio nel test e nell'ottimizzazione...

grazie in anticipo per l'ascolto ...

 

Ciao a tutti!

Ecco il codice (solo inizio)

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
    // Узнаем уровень стопов и спрэд
    int Spread = MarketInfo(Symbol(), MODE_SPREAD);
    int StopLevel = MarketInfo(Symbol(), MODE_STOPLEVEL);

    // Рассчитываем значения средних на 0-ом и 1-ом барах
    double MAF_0 = iMA(NULL, 0, MAFP, 0, 1, 1, 0);
    double MAF_1 = iMA(NULL, 0, MAFP, 0, 1, 1, 1);
    double MAS_0 = iMA(NULL, 0, MASP, 0, 1, 1, 0);
    double MAS_1 = iMA(NULL, 0, MASP, 0, 1, 1, 1);
    
   // ----открытие позиции Buy покупка-----
    if( MAF_0 > MAF_1 && MAS_0 > MAS_1) { //-условие на покупку--- 
    if( isCloseLastPosByTake( NULL, OP_SELL, MagicNumber) ==true) {
     if( CheckOrders(OP_SELL))                                      {
       if( StopLoss <= StopLevel+ Spread)
         double SL = 0;        else         SL = Ask - StopLoss*Point;
       if( TakeProfit <= StopLevel- Spread)
         double TP = 0;        else         TP = Ask + TakeProfit*Point;
       if(!OrderSend(Symbol(), OP_BUY, Lots, Ask, 5, SL, TP, NULL, MagicNumber))
         Print("Не открыт ордер Buy. Ошибка №", GetLastError()); 
                }
               }
              }
   //-------------------Конец блока покупки ------------------
    
  //  ----- Открытие позиции Sell продажа------------  
    if( MAF_0 < MAF_1 && MAS_0 < MAS_1) { //-условие на продажу---
    if( CheckOrders(OP_BUY))                                     {
      if( StopLoss <= StopLevel+ Spread)
         SL = 0;        else         SL = Bid + StopLoss*Point;
       if( TakeProfit <= StopLevel- Spread)
         TP = 0;        else         TP = Bid - TakeProfit*Point;
       if(!OrderSend(Symbol(), OP_SELL, Lots, Bid, 5, SL, TP, NULL, MagicNumber))
         Print("Не открыт ордер Sell. Ошибка №", GetLastError()); 
                 }
                }
   //-------------------конец блока продажи -------------------
     
   return(0);
  }//+----------КОНЕЦ ФУНКЦИИ СТАРТ -------------------+

//ЖЖЖЖЖЖЖ Другие вызываемые пользовательские функции ЖЖЖЖЖЖ
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.05.2008                                                     |
//|  Описание : Возвращает флаг закрытия                                       |
//|  последней позиции по тейку.                                               |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
bool isCloseLastPosByTake(string sy="", int op=-1, int mn=-1) {
  datetime t;
  double   ocp, otp;
  int      dg, i, j=-1, k=OrdersHistoryTotal();

  if ( sy=="0") sy=Symbol();
  for ( i=0; i< k; i++) {
    if (OrderSelect( i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol()== sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if ( op<0 || OrderType()== op) {
            if ( mn<0 || OrderMagicNumber()== mn) {
              if ( t<OrderCloseTime()) {
                t=OrderCloseTime();
                j= i;
              }} }}}}}

  if (OrderSelect( j, SELECT_BY_POS, MODE_HISTORY)) {
    dg=MarketInfo( sy, MODE_DIGITS);
    if ( dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=4; else dg=2;
    ocp=NormalizeDouble(OrderClosePrice(), dg);
    otp=NormalizeDouble(OrderTakeProfit(), dg);
    if ( ocp== otp) return( True);
  }
  return( False);
}
 

Qui, una condizione è più o meno implementata, come raccomandato da rid. Con i suoi commenti e correzioni.

L'Expert Advisor stesso compila, commercia.......Non è vero.......

Ho provato a mettere solo long-n un trade nel tester, ho messo anche solo short-n un trade.

La logica è semplice, quando la condizione di acquisto è soddisfatta, l'EA fa un accordo, l'accordo è chiuso al take profit.

E poi il consulente aspetta QUANDO arriva la prossima condizione di scambio. SOLO CHE QUESTA CONDIZIONE DEVE ESSERE OPPOSTA ALLA PRECEDENTE.

Т. Cioè se lo scambio era su BAY, il prossimo dovrebbe essere su SHELL.

 

Anche. In questo thread, solo molto prima, è stata sollevata una questione simile alla mia. Si trattava di bandiere. Ecco perché tutto questo trambusto.

 

Un'altra domanda.

Aprire 2 finestre, 1° 5 minuti, 2° 15 minuti.

Disegnare i MAK su entrambi (10). È GIUSTO se sul grafico a 5 minuti disegniamo una MA con (30), essa corrisponde a una MA con (10) sul grafico a 15 minuti.

Per i grafici di 15 e 30 il coefficiente sarà 2.

Per i grafici di 30 e 1 ora il coefficiente è 2.

Per i grafici di 1h e 4h il coefficiente sarà 4.

È vero o no????????????

 

igrok2008 писал(а) >>

È vero o no????????????

In senso stretto, no. Ma molto vicino ad esso.

 

Salve.

È la prima volta che scrivo sul forum. Speriamo non sia l'ultimo. Sono un novizio rispetto a quello che la gente scrive sul forum. Ho imparato il linguaggio circa un mese e mezzo fa dal "Textbook on Programming in MQL4" di Sergei Korolev.

L'ho studiato un mese o giù di lì circa mezzo anno fa con "Textbook on programming in MQL4" di Sergei Kovalev. Ho già scritto diversi Expert Advisors e li ho usati da allora. Ho scritto alcuni Expert Advisors, indicatori personalizzati,

...indicatori personalizzati, script. Ho sempre cercato di trovare risposte a tutte le domande che non capisco sul forum. Tuttavia, ho lottato con un dettaglio apparentemente minore e non riesco a trovare le risposte.

Per favore, aiutatemi.

La domanda riguarda l'uso di #include <XXX.mqh>, ho riletto l'intero forum, ma non riesco a trovare una risposta. In uno dei thread si dice:

"...Posso anche aggiungere che il file eX4 è autosufficiente - perché funzioni,
non richiede di includere il codice sorgente delle funzioni personalizzate.
Potete copiare il file ex4, inviarlo ad altri commercianti e usarlo lì.
È completo indipendentemente dalla tecnologia per ottenerlo".

Questo è il problema. Quando passa l'EA non "vede" la funzione, ma scrive durante la compilazione - non può aprire il file del programma.

Anche se in include sull'altro terminale è apparsa una voce non compilata in ex4.

Puoi spiegare l'errore. Grazie.

 
gvi2504 >> :

... Quando passa l'EA, non "vede" la funzione, ma scrive durante la compilazione - non può aprire il file del programma.

Anche se in include sull'altro terminale è apparsa una voce che non è compilata in ex4.

Puoi spiegare l'errore. Grazie.

Per favore, datemi un esempio, con registri completi. Come viene chiamata la libreria nell'EA, cosa c'è nel titolo della libreria stessa. Forse è così.

A proposito, TheXpert stava correndo qui intorno da qualche parte, è bravo in queste cose.