AutoGraf Serie 4 - Caratteristiche MQL. - pagina 35

 

Не очень понятно что Вы называете "строка кода для учёта в приложении".

Frammento da AG_Srtategy_Channal_Inside.mq4

//================================================================================== 6 ==
   if ( Channal == false)                           // Если объекта заданного типа нет
      {
      ObjectCreate ( My_Chan_Name, OBJ_STDDEVCHANNEL,0,0,0); // Создаём его.. 
      int Сoor_X2 = Time[0];                                // 1я точка СПРАВА, 2я СЛЕВА
      int Сoor_X1 = Сoor_X2 - With*60;                      // Канал длиной 3 часа
      ObjectSet( My_Chan_Name, OBJPROP_TIME1, Сoor_X1);      // Устанавливаем координаты
      ObjectSet( My_Chan_Name, OBJPROP_TIME2, Сoor_X2);      // Устанавливаем координаты 
      ObjectSet( My_Chan_Name, OBJPROP_COLOR, Orange);       // Устанавливаем координаты 
      AG_Message( Message, "АТ: Устанавливаем объект OBJ_STDDEVCHANNEL.");// Сообщение

      return(1);                 // Это необходимо, чтоб установл. канал был учтён AG 4    Имелась ввиду эта строка

      }
//---------------------------------------------------------------------------------- 7 --

Ero confuso da questa frase:

Il primo è che la funzione AT può fare trading per conto proprio - generare ordini di trading e inviarli al server

Sembra che la funzione AT possa ignorare l'applicazione e inviarli al server da sola ......

Apparentemente questo è il mio problema dovuto alla mancanza di esperienza. Il mio cervello non è ancora affilato per la programmazione.

 
LeonidSB писал(а) >>

.. Il tuo cervello non è ancora stato affinato per la programmazione.

Dovreste scrivere alcuni semplici programmi per conto vostro.

 

Avete assolutamente ragione. Mi sto sforzando per questo e spero di farlo presto, ma prima voglio capire cosa, come e perché è scritto da persone che hanno già esperienza. In parole povere, per acquisire conoscenze in modo che si traducano in esperienze, sulla base delle quali io stesso possa scrivere qualcosa.

In sostanza, qualsiasi programma "complesso" è un insieme interconnesso di programmi semplici. È come una casa e dei mattoni (sono un ex muratore per formazione e professione), cioè la programmazione è come un set di costruzione per me.

A proposito, prendetevi il tempo di guardare il mio indicatore nel lavoro. Disegna e lascia la linea del target sul grafico, la linea dei trade redditizi e di quelli in perdita, usando i quali si può analizzare visivamente l'implementazione della strategia sul grafico nel tester, e nella vita reale. Inoltre, quando si attivano le opzioni appropriate, è possibile vedere e applicare per ulteriori elaborazioni i risultati della sessione nel proprio file Log (non generale).

extern bool   PrDeal=false;                                      // Выключатель. Печатать отчет по каждой сделке
extern bool   PrCol=false;                                       // Выключатель. Печатать отчет в колонку
extern bool   PrTab=true;                                        // Выключатель. Печатать отчет в таблицу

Finora, tre tipi di rapporti sono creati simultaneamente in un file. Ho già detto che ho basato il mio rapporto sull'indicatore sviluppato da Vladislav Goshkov. Erano 280 linee. L'ho migliorato fino a 2300 linee. Come si dice, era qualcosa su cui costruire. Ovviamente, il codice è stato scritto in modo tale da non poter essere descritto in poche parole. Ma queste sono le mie prime linee di codice e funzionano, che è la cosa più importante! Quindi mi sto muovendo nella direzione giusta (anche se non nel modo giusto), e con il vostro aiuto nello spiegare i problemi che si presentano, è tutta una questione di tempo.

Grazie mille per la vostra partecipazione.


Cogliendo l'occasione, un'altra domanda.

È scritto nel tutorial:

Если в результате исполнения торгового приказа функция OrderClose() вернула значение false, то это значит, что ордер не закрыт. Чтобы выяснить причину неудачи выполняется анализ последней ошибки, возникшей при попытке осуществления торговой операции. Для этого вызывается функция Errors() (см. раздел Функция обработки ошибок). Если при исполнении этой функции обнаруживается, что ошибка является непреодолимой (например, торговля запрещена), то функция Close_All() заканчивает работу и возвращает управление в управляющую торговую функцию Trade(), что в конечном счёте приводит к завершению исполнения специальной функции start() эксперта. На следующем тике торговый терминал снова запустит на исполнение функцию start(), и если критерий закрытия на тот момент будет ещё актуален, то это снова приведёт к вызову на исполнение функции закрытия всех ордеров Close_All().

Domanda:

Ci sono due ordini aperti BUY-1 e BUY-2 con lotti 3 e 5 rispettivamente. C'è un ordine di compravendita che utilizza la funzione Close_All(). L'ordine degli ordini viene chiuso nel seguente ordine: prima BUY-2 (5 lotti), poi BUY-1 (3 lotti). Allo stesso tempo, BUY-2 (5 lotti) non può essere chiuso - l'errore è irreversibile - usciamo - l'ordine BUY-1 (3 lotti) non viene chiuso - la perdita aumenta - la stessa cosa succede al prossimo tick (la perdita aumenta), ecc. Cioè, se non possiamo chiudere il primo ordine della lista che non può essere chiuso a causa di qualche ragione impellente, tutti gli ordini seguenti della lista rimarranno aperti e rimarranno aperti per un certo tempo, non è chiaro. Questo non dovrebbe essere permesso. Questo non deve essere permesso dall'algoritmo del programma, ma ho fatto del mio meglio per analizzarlo e non sono riuscito a capire.

      //--------------------------------------------------------- 4 --
      if ( Ans==false)                     // Не получилось :( 
        {                                // Поинтересуемся ошибками:
         if( Errors(GetLastError())==false)// Если ошибка непреодолимая
            return;                       // .. то уходим.
        }
      //--------------------------------------------------------- 5 --
      Terminal();                         // Функция учёта ордеров 
      Events();                           // Отслеживание событий
     }
   return;                                // Выход из пользов. функции
  }
//--------------------------------------------------------------- 6 --

Si prega di spiegare in modo più dettagliato.

Grazie in anticipo, con rispetto e auguri, Leonid.

 
LeonidSB писал(а) >>

Domanda:

Ci sono due ordini aperti BUY-1 e BUY-2 con lotti 3 e 5 rispettivamente. C'è un ordine di compravendita che utilizza la funzione Close_All(). Ordine di chiusura degli ordini: prima BUY-2 (5 lotti), poi BUY-1 (3 lotti). Allo stesso tempo, BUY-2 (5 lotti) non può essere chiuso - l'errore è irreversibile - usciamo - l'ordine BUY-1 (3 lotti) non viene chiuso - la perdita aumenta - la stessa cosa succede al prossimo tick (la perdita aumenta), ecc. Cioè, se non possiamo chiudere il primo ordine della lista che non può essere chiuso a causa di qualche ragione impellente, tutti gli ordini seguenti della lista rimarranno aperti e rimarranno aperti per un certo tempo, non è chiaro. Questo non dovrebbe essere permesso. Questo non deve essere permesso dall'algoritmo del programma, ma ho fatto del mio meglio per analizzarlo e non sono riuscito a capire.

Si prega di spiegare in modo più dettagliato.

Grazie in anticipo e rispettosamente e con i migliori auguri, Leonid.

Un errore insormontabile è un errore che non può essere superato. Per esempio, Market_closed.

Da questo punto di vista, non importa quale ordine si chiude o si apre. Il mercato è comunque chiuso:).

Ma se si cerca di eseguire un trade, dovrebbe essere quello che ha la priorità più alta (dal punto di vista della strategia).

 

Salve signore e signori!

Per favore, rispondete alla mia domanda.

Quale degli indicatori mostra in modo più affidabile il cambiamento di tendenza - piatto?

Voglio aggiungere questo indicatore alle strategie AG_Srtategy_Channal_Inside e AG_Srtategy_Channal_Outside come passaggio da una strategia all'altra.

 
SK. писал(а) >>

........Il compito era di permettere all'utente di allegare all'applicazione AutoGraf 4 i propri algoritmi di trading scritti in MQL4 ed eseguiti come file di strategia .ex4. Per risolvere questo problema, l'Expert Advisor AG_exp.ex4 include del codice che importa nell'Expert Advisor la funzione di trading automatico AG_AT che è disponibile sia come file .ex4 che mq4. Inoltre, l'utente può decidere da solo come disporre i codici. Il più conveniente è usare una delle due varianti ....

Una tale variante non è stata considerata: modulo principale con codice aperto, il principale, che ora è con codice chiuso, è chiamato attraverso l'importazione, strategia di trading attraverso l'incluid (o attraverso l'incluid prima, e importazione nell'incluid)... Il punto è questo: un collegamento intermedio sotto forma di inluder per rendere visibili le variabili esterne. Mi sembra che, se si pensa attentamente, dovrebbe funzionare. Non dirmi subito che è impossibile ;)

 
LeonidSB писал(а) >>

Salve signore e signori!

Per favore, rispondete alla mia domanda.

Quale degli indicatori mostra in modo più affidabile il cambiamento di tendenza - piatto?

Voglio aggiungere questo indicatore alle strategie AG_Srtategy_Channal_Inside e AG_Srtategy_Channal_Outside come passaggio da una strategia all'altra.

E la scelta non è grande: STD, ATR, ADX. Anche orologio e calendario dei comunicati stampa.

 

Grazie!

Mi chiedo se c'è un'opzione in modo che quando si aggiunge un commento a una pagina, questo venga automaticamente aggiornato?

Devo periodicamente andare sulla pagina e aggiornarla manualmente.

 
Integer писал(а) >>

Questa opzione non è stata considerata: modulo core open source, quello core che ora è codice chiuso è chiamato via import, strategia di trading via incluid (o prima via incluid e poi importazione in incluidnik)... Il punto è questo: un collegamento intermedio sotto forma di inluder per rendere visibili le variabili esterne. Mi sembra che, se si pensa attentamente, dovrebbe funzionare. Non dire subito che è impossibile;)

Non c'è nessuna difficoltà nel farlo. Ma spedire un prodotto commerciale open source... non è la soluzione.

La vera soluzione è prevista in MT 5. Qualsiasi programma applicativo dovrebbe essere chiamato dal programma principale. Quello che serve è la capacità di gestire gli EA completati. In questo caso, una strategia personalizzata potrebbe consistere in un'unità analitica e un'unità di chiamata "subroutine". Vuoi - chiamare lo script e disegnerà una fiba, vuoi - chiamare l'indicatore, vuoi - chiudere tutto e pipsqueak la sera dopo il lavoro:).

E API. Allora si può fare uno strumento veramente moderno.

All'utente non interessano i nostri fronzoli (tutti i tipi di script, Expert Advisors, indistinguibili dagli esperti:). Lui o lei ha bisogno di un servizio conveniente, di alta qualità e multifunzionale. In MT4 era possibile fare solo quello che è stato fatto - una faccia tipo DOS e possibilità limitate.

Tutte le speranze per MT5.

 

È stata rilasciata la nuova versione di AG serie 4 - AutoGraf 4.90714.

Modifiche apportate:
1. l'algoritmo di analisi del controllo degli utensili 14 Close_All è stato ottimizzato.
2. Viene introdotta una nuova regola di gestione degli utensili 14 Close_All: è consentita l'impostazione del software dell'utensile al momento attuale. Per fare questo, inserite un valore di 1 per il parametro runtime dell'utensile (Instrument [0][2][32][1] = 1).

Scarica il software qui: http://autograf.dp.ua/Pages/4/421.htm

Motivazione: