[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 459

 
kara100 >>:

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

Vous pouvez essayer d'utiliser ObjectGet(). Notez la ligne DrawVLine(onp + "hz", hz, Red, 1, STYLE_DOT, false) ;

 
Necron писал(а) >>

Vous pouvez essayer d'utiliser ObjectGet(). Notez la ligne DrawVLine(onp + "hz", hz, Red, 1, STYLE_DOT, false) ;

Merci

 
Andrew_Filinsky >>:

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

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

Вопросы:

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

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

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

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

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

Essayez d'exécuter un script en boucle parallèle à l'EA qui se rafraîchira en cas d'erreur avec une fréquence de 3000 slips (3 secondes).

Je pense que le problème peut être résolu par une demande régulière (indépendamment des ticks).

Vous rafraîchissez s'il y a un tic, mais s'il y a un tic, pourquoi rafraîchir ?

donc seul un script en boucle peut aider.

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

Je l'ai écrit directement dans Mozilla sans vérifier si cela fonctionne).

 
Rover82 >>:

вот.

Vérifiez, mon indicateur n'est pas affiché (il y a un .csv nécessaire). Le paramètre des étiquettes doit être vrai

Dossiers :
optlev_1.mq4  15 kb
 
Necron >>:

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

Necron, merci beaucoup, ça marche... Oui, je sais que l'indicateur lui-même nécessite des données externes.....

 
S'il vous plaît, aidez-moi à fermer une position!!! J'ai 3 ordres BUY, un signal sort pour fermer une position BUY et le dernier ordre que j'ai ouvert est fermé, mais j'ai besoin de fermer le premier (le plus ancien) Merci beaucoup !
 

Dans MT4, il y a deux fenêtres ouvertes horizontalement (sur des horizons temporels différents) pour chaque paire de devises.

- Y a-t-il un moyen de les relier ? - Quand j'en appuie sur un, le second monte en même temps que le premier.

(J'ai entendu dire qu'il existe des programmes qui permettent de lier les fenêtres, mais je ne sais pas s'ils fonctionnent avec MT).

 
splxgf писал(а) >>

Il est préférable de passer à l'ADSL ou à un autre type de connexion. Je ne vois pas du tout comment vous pouvez travailler sur gprs.

Le conseiller se bloque parfois pendant l'envoi de l'ordre ...

... J'utilise un modem GPRS, il est allumé 24 heures sur 24, aucune interruption de connexion avec perte de connectivité pendant le travail de l'EA, je n'ai pas installé de logiciel pour analyser le trafic réseau, seulement un pare-feu standard WinXP.

[En fait, 10 Mo de trafic par jour et 0,8 (sic !) kilobits par seconde, soit 50 fois moins que la bande passante gprs classe 10, suffisent pour travailler en ligne sur six grandes paires de devises. Il est important que les connexions ne soient pas interrompues et que la latence des paquets vers et depuis le courtier soit faible. Depuis le téléphone via GPRS, la bande passante était suffisante, mais il y avait des interruptions. Maintenant, via un modem GPRS/EDGE fixe, ma connexion est bonne pendant 24 heures sans interruption, la bande passante pour le terminal MT4 est encore meilleure. [Fin de la digression lyrique]

J'ai trouvé et corrigé la source du problème de manière expérimentale. La source était simplement le pare-feu WinXP, qui semblait interférer dans le processus de transmission des données du terminal MT au serveur DC et le fausser. Et ce qui est intéressant, les positions ont été ouvertes, fermées et modifiées manuellement mais le script de l'Expert Advisor - pouf. Le problème des blocages a été résolu après avoir ajouté MetaTrader à la liste des exceptions du pare-feu de WinXP.

Merci à tous, merci pour l'aide potentielle.

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

Urain a écrit : >>

Essayez d'exécuter un script en boucle parallèle à l'EA qui se rafraîchit en cas de non-engagement avec une fréquence de 3000 slips (3 sec). Je pense que le problème peut être résolu par une demande régulière (indépendamment des ticks).

Merci, j'ai déjà trouvé la cause du problème, et la solution. En fait, la connexion n'a pas disparu, elle est stable sans interruption depuis plusieurs jours. Le problème s'est avéré être causé par l'activité du pare-feu de WinXP, et il est résolu en ajoutant MetaEditor à sa liste d'exceptions.

 
Bonsoir à tous ! Quelqu'un peut-il me dire comment fermer une commande et sélectionner la première commande pour la fermer ?
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()
        }

S'IL VOUS PLAÎT, AIDEZ-MOI ! !!