Organiser le cycle de commande - page 13

 
fxsaber:

Le modèle d'exemple est spécifiquement écrit avec SB. Alors question aux spécialistes de MT5, le code est-il correct ?

Je ne suis pas un spécialiste, mais je vais souligner l'évidence : un tel code peut s'en tirer avec des tentatives sans fin de fermer une position (par exemple, à la fin d'une session de négociation).

Eh bien, et les conditions complexes dans une ligne de code, bien sûr, réduire le code, mais le rendre plus difficile à lire.

 
Andrey Khatimlianskii:

Je ne suis pas un expert, mais je vais souligner l'évidence : un tel code peut s'en sortir en essayant sans cesse de fermer une position (par exemple, à la fin d'une session de négociation).

Il ne peut pas.

Eh bien, des conditions complexes dans une seule ligne de code, bien sûr, réduisent le code, mais le rendent plus difficile à lire.

Dans ce cas, la brièveté ne fait qu'aider - l'ensemble du TS est à l'écran.

 
fxsaber:

Si vous le prenez au pied de la lettre, vous pouvez également lire l'historique des tics pour chaque symbole dans le Market Watch. Mais je pense que vous comprenez en fait le sens de la déclaration.

Le code implémente en quelque sorte cette déclaration. C'est pourquoi j'ai demandé à tous ceux qui comprennent le MT5 : le code est-il correct ?

Eh bien, nous sommes les programmeurs.

Ainsi compris...

Sans rancune.

 

fxsaber:

C'est pourquoi j'avais une question pour tous ceux qui comprennent MT5 : le code est-il correct ?

Je n'ai pas beaucoup regardé le code - qui utilise activement SB (moi - non, pas les classes de trading plus précisément), peut-être peuvent-ils le dire ?

 
Artyom Trishkin:

Je n'ai pas beaucoup regardé le code - qui utilise activement SB (moi - non, pas les classes de trading plus spécifiquement), peut-être peuvent-ils dire ?

C'est un cas rare où le SB fonctionne comme il le devrait. Le modèle est un squelette. Bien entendu, vous pouvez ajouter toutes sortes de viandes sous forme de chèques de remplissage, de lots, etc. Mais la base restera la même.

Un modèle peut être réécrit sur MT4 avec un minimum d'effort et il fonctionnera à 100% sur MT5. Mais d'un autre côté, sur MT5, c'est vraiment une bonne question !

 
fxsaber:

Il s'agit d'un cas rare où le SB fonctionne correctement. Le modèle est un squelette. Bien sûr, vous pouvez ajouter toutes sortes de viandes sous forme de contrôles de remplissage, de loyautés, etc. Mais la base principale restera la même.

Un modèle peut être réécrit sur MT4 avec un minimum d'effort et il fonctionnera à 100% sur MT5. Mais sur MT5, c'est vraiment une bonne question !

Je vais essayer de l'utiliser à tête reposée et pas à 5 heures du matin :)

Je vais me réveiller, si personne qui connaît bien SB ne poste, je peux essayer de trouver les cailloux probables.

 
fxsaber:

Le modèle peut être réécrit pour MT4 avec un effort minimal et fonctionnera à 100%.

Réécriture sur MT4

// Шаблон большинства ТС

#property strict // обязательно

// Сигнал на покупку
bool BuySignal( const string Symb ) { return(true); }

// Сигнал на продажу
bool SellSignal( const string Symb ) { return(false); }

// Находит ордер соответствующего типа
bool OrdersScan( const string Symb, const int Type )
{
  for (int i = OrdersTotal() - 1; i >= 0; i--)
    if (OrderSelect(i, SELECT_BY_POS) && (OrderType() == Type) && (OrderSymbol() == Symb))
      return(true);    
    
  return(false);  
}

// Торговое действие на сигнал
bool Action( const string Symb, const int Type, const double Lots = 1 )
{
  bool Res = true;    
  
  // Закрыли противоположные сигналу позиции
  while ((OrdersScan(Symb, 1 - Type)) && (Res = OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 100)));

  // Открыли позицию по сигналу
  return(Res && !OrdersScan(Symb, Type) && OrderSend(Symb, Type, Lots, SymbolInfoDouble(Symb, Type ? SYMBOL_BID : SYMBOL_ASK), 100, 0, 0));
}

// Шаблон торговой стратегии
void Strategy( const string Symb )
{
  if (BuySignal(Symb))
    Action(Symb, OP_BUY);
  else if (SellSignal(Symb))
    Action(Symb, OP_SELL);
}

void OnTick()
{
  Strategy(_Symbol);
}

Mais sur MT5, c'est vraiment une bonne question !

Commentaires intéressants sur MT5.
 
fxsaber:

Il ne peut pas.

Oui, c'est possible. On ne peut tout simplement pas fermer une position quand il faut le faire.


fxsaber:

Dans ce cas, la brièveté ne fait qu'aider - l'ensemble du TS est à l'écran.

Vous pouvez l'écrire en 5 lignes, cela ne facilitera pas la lecture.

Je partage ma perception.

 
Andrey Khatimlianskii:

Oui, c'est ça. On ne peut tout simplement pas fermer une position quand il faut le faire.

J'ai écrit la variante MT4 à dessein pour la rendre plus familière. Il semble que les variantes de MT4 et MT5 soient identiques. SB est exactement la même chose. Nous supposerons que la variante MT4 fonctionne à 100%. C'est-à-dire que nous allons sauter quelques petits détails.

On peut l'écrire en 5 lignes, cela ne facilitera pas la lecture.

Je partage ma perception de la situation.

Oui, le code de quelqu'un d'autre est un mystère.

 
fxsaber:

J'ai écrit la variante MT4 à dessein pour la rendre plus familière. Il semble que les variantes de MT4 et MT5 soient identiques. SB est exactement la même chose.

Et quoi, OrderClose est garanti pour fermer la transaction ?


fxsaber:

Oui, le code des autres est sombre.

Non, ce n'est pas toujours comme ça. Je veux dire le style.