[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 188

 

J'essaie de calculer les échanges, mais cela ne fonctionne pas.

Voici le code qui sort les swaps des 20 dernières transactions.

for ( int j=OrdersHistoryTotal( )-1; j>=OrdersHistoryTotal( )-21; j--) {
OrderSelect(j, SELECT_BY_POS, MODE_HISTORY);
if(OrderType()==OP_BUY)
Alert(OrderSymbol()+" ЛОТ = "+OrderLots()+" РЕАЛЬНЫЙ СВОП = "+OrderSwap()+" РАСЧЕТНЫЙ СВОП "+MarketInfo(OrderSymbol(),MODE_SWAPLONG)*MarketInfo(OrderSymbol(),MODE_BID)*OrderLots()*MarketInfo(OrderSymbol(),MODE_TICKVALUE));
if(OrderType()==OP_SELL)
Alert(OrderSymbol()+" ЛОТ = "+OrderLots()+" РЕАЛЬНЫЙ СВОП = "+OrderSwap()+" РАСЧЕТНЫЙ СВОП "+MarketInfo(OrderSymbol(),MODE_SWAPSHORT)*MarketInfo(OrderSymbol(),MODE_BID)*OrderLots()*MarketInfo(OrderSymbol(),MODE_TICKVALUE));
}

Mais l'échange estimé et l'échange réel sont différents. Ce n'est pas que le prix de l'offre ne sera plus jamais le même, ce ne sont pas les dix millièmes.

Pour une raison quelconque, la différence est un multiple de 10.

C'est-à-dire que le swap calculé est 10 fois plus élevé que le réel.

Je ne peux même pas deviner ce qui ne va pas ici.

MarketInfo(OrderSymbol(),MODE_SWAPTYPE) renvoie un , puis .

"Méthode de calcul des swaps 1 - dans la monnaie de base de l'instrument ;"

Je prends la valeur du swap en pips, ce qui donne

MarketInfo(OrderSymbol(),MODE_SWAPLONG)

Je multiplie cette valeur par Bid,

*MarketInfo(OrderSymbol(),MODE_BID)

puis à la taille du lot

*OrderLots()

et en multipliant par la valeur d'un point dans la monnaie de dépôt d'un lot

*MarketInfo(OrderSymbol(),MODE_TICKVALUE)

Les valeurs renvoyées sont :

EURGBP LOT = 0.46000000 SWAP RÉEL = -1.31000000 SWAP ESTIMÉ -13.05244609

 

S'il vous plaît, dites-moi comment faire))

double MA1,MA2 ;

MA1=iMA(....,0) ;

MA2=iMA(....,3) ;

si (MA1-MA2>Point)//la MA regarde vers le haut

si (MA1-MA2,-Point)//MA regarde vers le bas

 
vasya_vasya писал(а) >>

Je multiplie cette valeur par Bid,

*MarketInfo(OrderSymbol(),MODE_BID)

C'est pour quoi faire ?

 
Roger >> :

S'il vous plaît, dites-moi comment faire))

double MA1,MA2 ;

MA1=iMA(....,0) ;

MA2=iMA(....,3) ;

si (MA1-MA2>Point)//la MA regarde vers le haut

si (MA1-MA2,-Point)//la MA regarde vers le bas

Merci beaucoup))

 
Roger писал(а) >>

C'est pour quoi faire ?

Je n'ai pas pu trouver une description de ce qu'il retourne

MarketInfo(OrderSymbol(),MODE_SWAPLONG)

J'ai conclu qu'il s'agissait de la taille du point EUR dans la cotation EURGBP , et je l'ai donc multiplié par BID pour obtenir le montant en GBP.

Le fait est que

MarketInfo(OrderSymbol(),MODE_TICKVALUE)

Renvoie la valeur du point par lot uniquement pour le GBP dans la cotation EURGBP, et non pour l'EUR.

 
vasya_vasya писал(а) >>

Je n'ai trouvé nulle part une description de ce que la valeur retourne.

Pour une raison quelconque, j'ai toujours pensé que tous les calculs étaient effectués dans la devise du dépôt.
 
Roger писал(а) >>
Pour une raison quelconque, je continuais à penser que tous les calculs étaient effectués dans la devise du dépôt.

Fonction MarketInfo(OrderSymbol(),MODE_SWAPSHORT)

Renvoie une valeur entière de -2, comme pour tous les autres ordres. Je suppose donc que c'est la valeur des points.

Supposons qu'il s'agisse de la valeur du swap exprimée en pips de notre devise de dépôt.

Devise de dépôt = USD

Multiplier

MarketInfo(OrderSymbol(),MODE_SWAPSHORT)

Par nombre de lots

*OrderLots()

Multipliez également par la valeur d'un pip de notre devise de dépôt par lot.

*10

Obtenez

SWAP = -9.20000000

Au lieu de

RÉEL SWAP = -1.31000000

 
vasya_vasya писал(а) >>

Fonction MarketInfo(OrderSymbol(),MODE_SWAPSHORT)

Renvoie une valeur entière de -2, comme pour tous les autres ordres. Je suppose donc qu'il s'agit d'une valeur en pips.

Pour l'EURGBP, il renvoie 0 (c'est Alpari) pour les short et -0.68 pour les long et ceci exactement en dollars.

 
Profils s'il vous plaît conseiller, selon l'aide de la langue mql5 il n'ya pas de fonction iHighest comment calculer le maximum élevé pour N période ? ... J'ai essayé copyHigh et fmax, mais seulement pour une certaine période et pas que bien sûr, aider
 

Pour le dire crûment :

double HighestBar(int start, int end)
{
double maxBar;
for (int i= start; i< end; i++)
if( maxBar<High[ i]) maxBar=High[ i];
return( maxBar);
}