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

 
kara100 >>:

Здравствуйте, все! Подскажите, плз, как вытащить из индикатора +МР, сами значения уровней для использования в советнике?

Potete provare a usare ObjectGet(). Notate la linea DrawVLine(onp + "hz", hz, Red, 1, STYLE_DOT, false);

 
Necron писал(а) >>

Potete provare a usare ObjectGet(). Notate la linea DrawVLine(onp + "hz", hz, Red, 1, STYLE_DOT, false);

Grazie

 
Andrew_Filinsky >>:

Здравствуйте. Я начинающий трейдер, придумал торговую стратегию, написал советника, при его работе на демосчёте возникла следующая проблема:

Советник иногда зависает во время выполнения операции OrderSend(). Выглядит это так: в вечером запустил советник, утром обнаруживаю, что советник завис в 3 часа ночи. В логе присутствует сообщение "Выполнение команды началось ...", сообщения "... Выполнение команды закончилось" нет. Терминал MT4 работает, получение котировок происходит, котировки отображаются на графике инструмента, на котором работает советник, советник висит. Ситуация возникает неоднократно, после перезапуска терминала ошибка может повториться через несколько часов.

Вопросы:

В чём причина зависания советника? Как устранить зависание?

Вот фрагмент соответствующего кода:

Дополнительная информация: использую GPRS-модем, включён круглосуточно, обрывов связи с потерей коннекта в течение работы советника не наблюдается, программ для анализа сетевого трафика специально не устанавливал, работает только стандартный брандмауэр WinXP.

Поискал по форуму, подходящего описания такой проблемы, её причин и способов их устранения не нашёл.

( Такое ощущение, что проблема возникла на ровном месте. Вообще не представляю, как такие фундаментальные вещи могут не работать )

Provate ad eseguire uno script in loop parallelo all'EA che aggiornerà se c'è un errore con una frequenza di 3000 slittamenti (3 secondi).

Penso che il problema possa essere risolto con una richiesta regolare (indipendentemente dai tick).

Si aggiorna se c'è una spunta, ma se c'è una spunta perché aggiornare?

quindi solo uno script in loop può aiutare.

int start()
{//+----------------------------------------------+
 while(!IsStopped())
   {if(!IsConnected())RefreshRates();
    Sleep(3000);
   }
return(0);
}//+----------------------------------------------+

L'ho scritto direttamente in Mozilla senza controllare se funziona).

 
Rover82 >>:

вот.

Controlla, il mio indicatore non viene visualizzato (c'è un .csv richiesto). L'impostazione delle etichette dovrebbe essere vera

File:
optlev_1.mq4  15 kb
 
Necron >>:

Проверьте, у меня не отображается индикатор (там .csv нужен какой-то). В настройках labels должно быть true

Necron, grazie mille, funziona... Sì, so che l'indicatore stesso richiede dati esterni ....

 
Per favore aiutatemi a chiudere una posizione!!! Ho 3 ordini BUY, esce un segnale per chiudere una posizione BUY e l'ultimo ordine che ho aperto è chiuso, ma ho bisogno di chiudere il primo (il più vecchio) Grazie mille!
 

In MT4 ci sono due finestre aperte orizzontalmente (su diversi timeframes) per ogni coppia di valute.

- C'è un modo per collegarli? - Quando ne premo uno, il secondo sale insieme al primo.

(Ho sentito che ci sono programmi che permettono di collegare le finestre, ma non so se funzionano con MT)

 
splxgf писал(а) >>

È meglio passare all'ADSL o a un altro tipo di connessione. Non vedo come si possa lavorare su gprs.

Ilconsulente a volte si blocca durante OrderSend() ...

... Uso il modem GPRS, è acceso 24 ore al giorno, nessuna interruzione di connessione con perdita di connettività durante il lavoro EA, non ho installato alcun software per analizzare il traffico di rete, solo firewall standard di WinXP.

[Infatti, 10MB di traffico al giorno e 0,8 (sic!) kilobit al secondo, che è 50 volte meno della larghezza di banda gprs classe 10, è sufficiente per lavorare online su sei coppie di valute principali. È importante che non ci siano connessioni interrotte e una bassa latenza dei pacchetti da e verso il broker. Dal telefono via GPRS la larghezza di banda era sufficiente, ma c'erano delle interruzioni. Ora via modem fisso GPRS/EDGE la mia connessione è buona per 24 ore senza interruzioni, la larghezza di banda per il terminale MT4 è ancora migliore. [Fine della digressione lirica]

Ho trovato e risolto la fonte del problema sperimentalmente. La fonte era solo il firewall di WinXP, che sembrava aver interferito con la trasmissione dei dati dal terminale MT al server DC e l'ha distorta. E ciò che è interessante, le posizioni sono state aperte, chiuse e modificate manualmente ma lo script di Expert Advisor - puff. Il problema dei blocchi è stato risolto dopo aver aggiunto MetaTrader alla lista delle eccezioni del firewall di WinXP.

Grazie a tutti, grazie per il potenziale aiuto.

 
Советник иногда зависает во время выполнения операции OrderSend().

Urain ha scritto : >>.

Provate ad eseguire uno script in loop parallelo all'EA che aggiorna in caso di non-commitment con una frequenza di 3000 slittamenti (3 sec). Penso che il problema possa essere risolto con una richiesta regolare (indipendentemente dai tick).

Grazie, ho già trovato la causa del problema e la soluzione. In effetti, la connessione non è andata da nessuna parte, è stata stabile senza interruzioni per diversi giorni. Il problema è risultato essere causato dall'attività del firewall di WinXP, ed è stato risolto aggiungendo MetaEditor alla sua lista di eccezioni.

 
Buona sera a tutti! Qualcuno può dirmi come chiudere un ordine e selezionare il primo ordine e chiuderlo?
while(true)                                  // Цикл закрытия орд.
     {
      if ( Tip==0 && Cls_B==true)                // Открыт ордер Buy..
        {                                       //и есть критерий закр
         Alert("Попытка закрыть Buy ", Ticket,". Ожидание ответа..");
         RefreshRates();                        // Обновление данных
         
         Ans=OrderClose( Ticket, Lot,Bid,2);      // Закрытие Buy
         if ( Ans==true)                         // Получилось :)
           {
            Alert ("Закрыт ордер Buy ", Ticket);
            break;                              // Выход из цикла закр
           }
         if ( Fun_Error(GetLastError())==1)      // Обработка ошибок
            continue;                           // Повторная попытка
         return;                                // Выход из start()
        }

PER FAVORE AIUTATEMI!!!

Motivazione: