[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 314

 
borilunad:
Victor, en dehors du dessus-dessous, il faut utiliser un gap préventif, car pendant que l'ordre est envoyé, le prix n'est pas immobile, donc on fait un pas ou un pas dans la zone interdite ! Insérez comme en modification et un plus grand glissement, et vous serez bien ! Travailler sur Real sans erreurs ! Bonne chance !


Boris, donc le slippage vaut déjà 3, ceci, si je comprends bien 3 points. Combien de plus avez-vous besoin ?

Tu veux dire comme ça :

bool OpenBuy()
{
   int ticket = -1;
   double OOP = High[1] + i_thresholdToUp * pt;
   pr ("ND(OOP) = " + ND(OOP) + " ; Ask = " + Ask);
   pr ("g_stopLevel = " + g_stopLevel);

   if ((ND(OOP) - g_stopLevel)> Ask)
       ticket = OrderSend(Symbol(), OP_BUYSTOP, 0.1, ND(OOP), 3, 0, 0, NULL, i_magic, 0, CLR_NONE);
   else pr ("Ордер послать не удалось " + GetLastError());
   
   if (ticket > 0)
   {
 //      lastBarTime = Time[0];               // На текущем баре все необходимые действия..
                                            // .. успешно выполнены
       return (true);
   }
}

Je me demande comment l'implémenter d'une meilleure manière, afin de ne pas mettre des fonctions supplémentaires ici.

 

hoz, à je me demandais comment raccourcir encore plus le si.Regardez : si on met une variable

bool _if=((2*trend-1)*Δ≥const);//аналогично _if=(±Δ≥const)

on a cnt=cnt+step, où

if(_if) step=1;
}else{ step=-cnt;
}

Mais 1=cnt/cnt, a -cnt=cnt/(-1), la seule différence est le dénominateur. Rappelons maintenant que x^0=1, x^1=x, c'est-à-dire que nous pouvons mettre notre variable booléenne _if dans l'exposant, c'est-à-direstep=cnt/a*(cnt^_if); où

if(_if) a=1;
}else{ a=-1;
}

Mais ±a est supposé être 2*_if-1, c'est à dire

bool _if=((2*trend-1)*Δ≥const);//аналогично _if=(±Δ≥const)
int step=cnt/(2*_if-1)*(cnt^_if);//принимает два значения: 1 и -cnt
cnt=cnt+step;

Ou nous simplifions

bool _if=((2*trend-1)*Δ≥const); cnt=cnt+cnt/((2*_if-1)*(cnt^_if));
 
hoz:


Boris, le slippage est donc déjà de 3, c'est ce que je comprends par 3 points. Combien de plus avez-vous besoin ?

Tu veux dire comme ça :

Je me demande comment implémenter cela de manière plus intelligente afin de ne pas mettre de fonctions supplémentaires ici.

J'espère que le slippage est de 3 pour 4 chiffres si vous avez besoin de 30 pour 5 !
 

Les gars, veuillez me conseiller un script qui donne un message indiquant que le marché est ouvert et que le marché est fermé.

C'est-à-dire que lorsque le lundi arrive 0.00.01, il donne un message que le marché ouvre, puis le message que "le marché est ouvert", de même, que le marché a fermé.

J'ai écrit un script mais il ne fonctionne pas (( Aidez-moi à le comprendre.

// определяем начало и конец торгов.
      // начало торгов в понедельник в 0.00.01
      
      if(DayOfWeek()==1 && Hour()== 0 && Minute()== 0 && Seconds()==01)
      {
         Alert("Рынок открылся.");
      }
      // конец торгов в Пятницу в 23.59.59
      if(DayOfWeek()==5 && Hour()== 23 && Minute()== 59 && Seconds()==59)
      {
         Alert("Пятница, Рынок закрылся.");
      }

 

Existe-t-il un robot capable de placer des ordres en attente BAY STOP et SELL STOP ? A un moment donné , avec un pas minimum de déclenchement à partir du prix à ce moment-là. En bref, sous les feux de l'actualité. Je n'ai pas le temps avec mes mains.
 
hoz:

J'ai eu cette putain d'erreur moi-même. En fait, il n'y a pas de logique du tout. Pour ouvrir un ordre en suspens selonhttps://book.mql4.com/ru/appendix/limits, le prix d'ouverture doit être soit inférieur au Bid (pour la vente), soit supérieur au Ask (pour l'achat). Je fais ce qui est demandé.

De temps en temps, je reçois des erreurs 0 et 130. Bien que 130 soit une erreur d'arrêt erroné, qui peut se produire pendant la modification, mais pas pendant l'ouverture de l'ordre.

Sur la capture d'écran, la situation et l'impression affichées à l'aide de la fonction pr.

Veuillez m'indiquer comment me débarrasser de ce bogue. Je suis vraiment malade et fatigué de cette erreur. Logiquement, il n'est pas du tout sur le sujet.

La 130e erreur n'est pas nécessairement un ordre d'arrêt. C'est aussi une distance par rapport au placement d'ordres en attente au moins int MarketInfo(Symbol(), MODE_STOPLEVEL)
 
borilunad:
J'espère que le glissement 3 pour 4 chiffres, si vous avez besoin de 30 pour 5 !

Il n'y a donc pas de glissement du tout dans le testeur, d'ailleurs... Corrigé à 30.

artmedia70:
La 130ème erreur n'est pas nécessairement un ordre d'arrêt. Il s'agit également d'une distance des ordres en attente au moins égale à int MarketInfo(Symbol(), MODE_STOPLEVEL)

.

C'est ici :

//+-------------------------------------------------------------------------------------+
//| Открытие длинной позиции                                                            |
//+-------------------------------------------------------------------------------------+
bool OpenBuy()
{
   int ticket = -1;
   double OOP = High[1] + i_thresholdToUp * pt;
   pr ("ND(OOP) = " + ND(OOP) + " ; Ask = " + Ask);
   pr ("g_stopLevel = " + g_stopLevel);

   if (ND(OOP)> (Ask + g_stopLevel))
       ticket = OrderSend(Symbol(), OP_BUYSTOP, 0.1, ND(OOP), 30, 0, 0, NULL, i_magic, 0, CLR_NONE);
   else pr ("Ордер послать не удалось " + GetLastError());
   
   if (ticket > 0)
   {
 //      lastBarTime = Time[0];               // На текущем баре все необходимые действия..
                                            // .. успешно выполнены
       return (true);
   }
}

Où :

g_stopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL) * pt;

C'est écrit de la même façon que le tien Artem. C'était la même chose hier par logique. Mais les erreurs s'accumulent. Il est inutile d'ajouter des points supplémentaires pour que cela fonctionne dans le testeur, où il n'y a pas du tout de requêtes ou de dérapages.

Que dois-je faire de manière plus universelle pour éviter de commettre les mêmes erreurs ? J'ai vu tellement de conseillers experts qui n'ont jamais ajouté 2 ou 3 points supplémentaires, sauf pour le slippage. Après tout, dans ce cas, il y aura un écart de 6 pp par rapport au prix requis. Et ce n'est pas bien. Les conseillers experts sont écrits pour les ticks et les minutes. Et il semble qu'il puisse y avoir de la précision dans le commerce. Je veux donc qu'il soit précis, qu'il n'y ait pas de gros retraits...

 

Les amis !

Une question globale s'est posée

Est-il possible d'obtenir le flux de ticks dans le terminal le week-end, afin de pouvoir écrire et déboguer des EAs tranquillement ?

J'ai déjà quelques astuces pour l'utiliser dans mon robot de trading.

Je ne peux pas utiliser un tick pour déclencher l'EA, j'ai besoin d'un flux de ticks dans une certaine fourchette.

existe-t-il une telle chose dans la nature ?

des serveurs mt4 qui émulent les cotations en continu les week-ends ?

 
pasha5282:

Les gars, veuillez me conseiller un script qui donne un message indiquant que le marché est ouvert et que le marché est fermé.

c'est-à-dire que lorsque le lundi 0.00.01 donne le message que le marché ouvre, alors le message que "le marché est ouvert", de même, que le marché a fermé.

J'ai écrit un script mais pour une raison quelconque, il ne fonctionne pas (( aidez-moi à le comprendre.


S'il s'agit d'un script et qu'il se trouve dans le dossier scpirts, alors il a fonctionné une fois et a été supprimé du graphique. Afin de le conserver de manière permanente, écrivez votre code à l'intérieur de ce fichier.


int start()
{
   while(!IsStopped())
   {
      // вот сюда

      Sleep(500);
   }
}
 
dekker:

Les amis !

Une question globale s'est posée

Est-il possible d'obtenir le flux de ticks dans le terminal le week-end, afin de pouvoir écrire et déboguer des EAs tranquillement ?

J'ai déjà quelques astuces pour l'utiliser dans mon robot de trading.

Je ne peux pas utiliser un tick pour déclencher l'EA, j'ai besoin d'un flux de ticks dans une certaine fourchette.

existe-t-il une telle chose dans la nature ?

des serveurs mt4 qui émulent les cotations en continu les week-ends ?

il y a des courtiers qui travaillent les week-ends, google le.
Raison: