Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 813

 
Bonjour. Aidez-moi, s'il vous plaît. Il passe des commandes et ne fait rien d'autre. Aucune erreur.
Dossiers :
test3_3.mq4  15 kb
 
Bonjour ! Je m'excuse si je suis hors sujet, mais je suis épuisé - c'est un cri du cœur ! J'ai essayé de l'utiliser dans MQL4 et j'ai essayé de le comprendre moi-même, mais ça n'a pas marché. J'ai creusé sur Internet et essayé d'utiliser MQL4, mais rien ne fonctionne. Cet indicateur devrait montrer la différence de pips entre deux CFDs sous forme de ligne. C'est-à-dire (bid+ask)/2 du premier instrument moins (bid+ask)/2 du second instrument, respectivement, par chandeliers. Les noms des instruments doivent être définis dans les paramètres de l'indicateur; il doit y en avoir deux. La partie finale de la ligne doit changer à chaque nouveau tic. Et les cotations devraient être synchronisées par heure, et non par bougie (nombre différent de bougies par jour BRN et CL). Aidez-nous, bonnes gens ! Je vous en suis reconnaissant à l'avance.
 
CJIeCaPb:
Bonjour. Aidez-moi, s'il vous plaît. Il passe des commandes et ne fait rien d'autre. Aucune erreur.

Pourquoi ça ?

for(i=1;i<=OrdersTotal();i++) //может с OrdersTotal()-1 и до 0 разумнее было бы?
{
 if(OrderSelect(i-1,SELECT_BY_POS)==true)
 {
  if(OrderSymbol()!=Symb)continue;
  if(OrderType()==4) //тип байстоп - 4
   OrderTicketBuy=OrderTicket();
   if(OrderType()==6) //тип селлстоп - 5
   OrderTicketSell=OrderTicket();
   
  }
}

Lisez les types d'ordres, et le reste du manuel ne devrait pas être sur une auto-torsion, d'abord lire au moins 10 fois.

 
fantom700:
Bonjour ! Je m'excuse si je suis hors sujet, mais je suis épuisé - c'est un cri de l'âme ! J'ai essayé de l'utiliser dans MQL4 et j'ai essayé de le comprendre moi-même, mais ça n'a pas marché. J'ai creusé sur Internet et essayé d'utiliser MQL4, mais rien ne fonctionne. Cet indicateur devrait montrer la différence de pips entre deux CFDs sous forme de ligne. C'est-à-dire (bid+ask)/2 du premier instrument moins (bid+ask)/2 du second instrument, respectivement, par chandeliers. Les noms des instruments doivent être définis dans les paramètres de l'indicateur ; il doit y en avoir deux. La partie finale de la ligne doit changer à chaque nouveau tic. Et les cotations devraient être synchronisées par heure, et non par bougie (nombre différent de bougies par jour BRN et CL). Aidez-nous, bonnes gens ! Merci d'avance.
Il n'y a pas de Bid et Ask dans l'historique, il y a des prix décrits par MqlRates et les indicateurs sont dessinés par l'historique.
 
evillive:

Pourquoi ça ?

Lisez les types de commandes, et le reste du manuel, n'essayez pas de vous planter, lisez d'abord au moins 10 fois.

BUYSTOP et SELLSTOP sont fixés, et ils ont respectivement les types 4 et 6.

Je ne comprends pas ce que veut dire "OrdersTotal() :" de -1 à 0" ?

 
CJIeCaPb:

BUYSTOP et SELLSTOP sont définis, et ils ont les types 4 et 6 correspondants.

*Je ne comprends pas ce que signifie OrdersTotal() : " de -1 à 0 " ?

Le type de bystop est 4, le sellstop est 5 et les types sont numérotés à partir de zéro. Avec le type 6, seul le dépôt/retrait semble être effectué, et même cela n'est documenté nulle part.

*Non pas "de -1 à 0", mais "en boucle de OrdersTotal()-1 à 0".

De plus, l'exécution de l'OrderSelect doit être vérifiée, ne soyez pas paresseux, vous comprendriez à partir de l'erreur d'exécution que les tickets sont incorrects.

En général, toutes les fonctions commerciales DOIVENT être vérifiées pour s'assurer de leur bonne exécution, donc ne soyez pas paresseux pour vérifier. Et les résultats renvoyés par d'autres fonctions peuvent et doivent être vérifiés.

 
evillive:
Il n'y a pas de Bid et Ask dans l'historique, il y a des prix décrits par MqlRates, et les indicateurs sont dessinés sur l'historique.

Il suffit alors de trois chiffres : premier chiffre : prix du premier instrument(bid+ask)/2 ; deuxième chiffre : prix du deuxième instrument(bid+ask)/2 ; troisième chiffre :(bid+ask)/2 du premier instrument moins (bid+ask)/2 du deuxième instrument. Sans histoire, juste sur des tics à un moment donné du temps.

En fait, je voulais faire quelque chose comme ceci : http://www.mister-forex.ru/indikator-ma-arbitrage/

Seulement sans aucun by, sell. Juste un indicateur sous forme de ligne.

 
evillive:

Le type de stop d'achat est 3, le stop de vente est 5 ; le type d'ordre est numéroté à partir de zéro. Avec le type 6, seul le dépôt/retrait semble être différent, et même cela n'est documenté nulle part.

*Pas "de -1 à 0", mais "boucle de OrdersTotal()-1 à 0".

De plus, l'exécution d'OrderSelect aurait dû être vérifiée, ne soyez pas paresseux, il aurait été clair à partir de l'erreur d'exécution que les tickets étaient faux.

En général, toutes les fonctions commerciales DOIVENT être vérifiées pour être exécutées sans erreur, donc ne soyez pas paresseux pour vérifier. Et les résultats renvoyés par les autres fonctions peuvent et doivent être vérifiés.

Les chiffres vous troublent !

Le type d'opération pour la fonctionOrderSend(). Peut être l'une des valeurs suivantes :

Constant

Valeur

Description

OP_BUY

0

Acheter

OP_SELL

1

Vendez

OP_BUYLIMIT

2

Ordre en attente BUY LIMIT

OP_SELLLIMIT

3

Ordre SELL LIMIT en attente

OP_BUYSTOP

4

Ordre BUY STOP en attente

OP_SELLSTOP

5

Ordre SELL STOP en attente

 
borilunad:

Les chiffres vous troublent !

Le type d'opération pourOrderSend(). Peut être l'une des valeurs suivantes :

C'est ma faute, je me suis trompé.
 
evillive:

Le type 3 est un bystop, le sellstop est 5 ; la numération des types commence à zéro. Avec le type 6, seul le dépôt/retrait semble être limité, et même cela n'est documenté nulle part.

*Pas "de -1 à 0", mais "boucle de OrdersTotal()-1 à 0".

De plus, l'exécution de l'OrderSelect aurait dû être vérifiée, ne soyez pas paresseux, il aurait été clair à partir de l'erreur d'exécution que les tickets étaient faux.

En général, toutes les fonctions commerciales DOIVENT être vérifiées pour être exécutées sans erreur, donc ne soyez pas paresseux pour vérifier. Et les résultats renvoyés par les autres fonctions peuvent et doivent être vérifiés.

Ahh, je l'ai mal indiqué, oui).

Revérifié un par un. Seul le billet de vente était faux. J'ai aussi vérifié le reste : commandes, comparaisons, modifications. Mais, toujours une stupeur après avoir passé des commandes. Tout fonctionnait séparément.

La condition pour entrer if(MA=MA1) n'est pas correcte ? Parce que =, n'est pas un signe de condition, le signe correct est "==", mais si je l'ai écrit de cette façon, le conseiller expert ne fait rien du tout. Les autres variantes : ">=", "<=", "<", ">" que et "=" conduisent à passer des commandes et à une stupeur supplémentaire.

Dossiers :
test3_4.mq4  15 kb
Raison: