[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 178

 
MQL414:

Peut " Si TP. et Ask< iClose("USDCHF",PERIOD_H1,i) alors Lot=0.0.


Merci mais pas adapté.La condition est remplie au début de chaque heure si Open est en dessous( sur la vente) de la ligne de tendance, et les chandeliers peuvent être n'importe quel.Cette restriction peut conduire au fait que le premier commerce ne sera pas ouvert non plus.

J'ai une option. Par exemple, si aujourd'hui, après une transaction de vente, le solde a augmenté de TP, alors interdisez une transaction de vente aujourd'hui, si une transaction d'achat, alors interdisez une transaction d'achat. Mais je ne sais pas comment le coder.

 
deyron:
Merci monsieur, j'ai fait cela et plus encore - de nombreuses fois dans différentes variantes. Lorsque j'essaie d'utiliser l'indicateur iCustom, il fonctionne bien de la même manière, lorsque je change de TF il est dessiné ... Si je le supprime du presse-papiers, il sera dessiné dans un dossier différent dans iCustom ... Si j'essaie de mettre un commentaire dans iCustom, il sera dessiné dans un dossier différent dans iCustom. Je vais essayer de le modifier de la même manière qu'il est dessiné dans le code. Je serai heureux d'entendre toute autre suggestion)).

Option)))... Modèle enregistré du même nom que l'EA avec cet indicateur... alors, non ?

.... Traitement))) Retirer le gabarit .

 

Merci ! Ça s'est un peu éclairci. Avec le tampon.

Et là...

IndicateurCompté( )
La fonction renvoie le nombre de barres inchangées depuis le dernier appel de l'indicateur. Comment ? Je l'ai attaché au graphique une fois, et le nombre de barres sera le même ? C'est impossible, il se peut qu'il compte le nombre après chaque tic. Des bars où ? Probablement, sur la partie visible du graphique ? C'est vraiment écrit de telle manière qu'on ne peut que deviner ! Désolé pour la mise en page ukrainienne, mon frère a changé la fenêtre, je ne peux pas la changer !
 if(counted_bars>0) counted_bars-- ; limit=Bars-counted_bars ;
Pourquoi est-ce si difficile d'écrire ? Et de toute façon, plus de bar, moins de bar ? Ok, je vais continuer à lire le code, peut-être que je vais trouver.

 

Est-il possible d'être aussi compliqué ? Et de toute façon, bar plus, bar moins ? OK, je vais continuer à lire le code et voir si je peux le comprendre.

Si le calcul est assez compliqué, le recalcul inutile de milliers de barres inchangées est une grande perte de temps. Je dois y arriver avant le prochain tick, et cela peut prendre 250 millisecondes (sur mon serveur).
 
Heroix:
Korinf, lisez l'article sur OrderCloseBy().

D'après ce que j'ai compris, il ferme deux ordres. J'ai besoin qu'il clôture +1 et -1 et que le solde soit le nombre de lots qui donne -1. C'est-à-dire la totalité de la première + une partie de la seconde pour laisser un solde.

Pouvez-vous me donner un indice ?
Toute la journée je n'arrive pas à trouver les points de chalutage de la fonction. J'ai trouvé beaucoup de pistes, mais elles utilisent toutes des chandeliers ou des fractales ou autre chose.
Si mon bénéfice devient +1, je devrais chaluter de plusieurs points. Par exemple, j'ai fixé un bord de suivi de 10 pips. Le prix a bougé de 10 points dans ma direction - le SL s'est rapproché de n points. Il a avancé de 10 points et le SL s'est rapproché.
Je pense que cela aurait dû être mis en œuvre il y a longtemps !
 
Existe-t-il une fonction qui calcule où un groupe d'ordres atteindra le seuil de rentabilité ?

Par exemple, j'ai deux ordres de vente et un ordre d'achat (même s'ils sont identiques). Je veux tracer une ligne où se situera le seuil de rentabilité de ces positions si le prix baisse.
 

korinf:
Есть ли функция которая считает где будет безубыток у кучи ордеров?

У меня есть к примеру два ордера sell и один buy(пусть одинаковые). Хочу чтобы рисовалась линия где будет уровень безубытка по этим позициям если цена идет вниз.

https://www.mql5.com/ru/code/9703

https://www.mql5.com/ru/code/9375

https://www.mql5.com/ru/code/10007

 
korinf:

D'après ce que j'ai compris, il ferme deux ordres. C'est-à-dire que le premier +1 sur le second -2 il va fermer les deux avec un bénéfice total de -1. Et j'ai besoin qu'il ferme +1 et -1 et un reste de ce kolichuvto lots, ce qui donne -1. C'est-à-dire la totalité de la première + une partie de la seconde pour laisser un solde.



Et il en sera ainsi. Seule la partie des commandes qui se chevauchent sera fermée, mais le reste recevra son ticket. Il ressemblera à un nouvel ordre, mais il sera ouvert au prix de l'ordre dont le volume était plus important.
 

OK !) Tous les chevauchements ont été réglés !

Pouvez-vous me donner un indice ?
J'ai essayé de trouver la fonction trall article par article pendant toute la journée. Par exemple, j'ai trouvé beaucoup de tralls, mais ils utilisent tous des chandeliers ou des fractales.
Si mon bénéfice devient +1, je devrais chaluter de plusieurs points. Par exemple, j'ai fixé un bord de suivi de 10 pips. Le prix a bougé de 10 points dans ma direction - le SL s'est rapproché de n points. Il a avancé de 10 points et le SL s'est rapproché.
Je pense que cela aurait dû être mis en œuvre il y a longtemps !

 

Aide) Quel est le bug dans le code) dans le testeur tout va bien) et dans la démo tout est mort) n'est pas le cas depuis plusieurs jours) Voici le code)

extern inttern Tenkan=5 ;
extern int dd=9 ;
extern int slowing=3 ;
extern int kk=9 ;
extern inttern UrovenUp=56 ;
extern double TakeProfit=100 ;
extern double Lots=3 ;
extern double StopLoss=100 ;

int start()
{double MY,priceBuy,priceBuy2,Ich,D,K,K1 ;
double Cc1,C2,C3,C4 ;
int ticket ;


MY=(Open[0] + Close[0] )/2 ;
Ich=((Open[iHighest(NULL, 0, MODE_OPEN, Tenkan)]) +
(Close[iLowest(NULL, 0, MODE_CLOSE, Tenkan)]))/2 ;

D=(iStochastic(NULL,0,kk,dd,ralentissant,MODE_SMA,0,MODE_SIGNAL,0)) ;
K=(iStochastic(NULL,0,kk,dd,ralentissant,MODE_SMA,0,MODE_MAIN,0))
K1=(iStochastic(NULL,0,kk,dd,ralentissant,MODE_SMA,0,MODE_MAIN,1))
Cc1=Close[2] < Close[1] ;
C2=Close[0] > Close[1] ;
C3=K>K1 ;
C4=D<UrovenUp ;


//Condition de prix d'achat et de vente//
priceBuy=MarketInfo(Symbol(),MODE_ASK) ;
priceBuy2=MarketInfo(Symbol(),MODE_BID) ;


//condition d'achat//


{si (MY > Ich && Cc1 && C2 && C3 && C4)

//ticket=OrderS³ ; //ticket=OrderS³ ; //condition d'achat et de vente///
{ticket=OrderSend(Symbol(),OP_BUY,Lots,priceBuy,3,priceBuy2-StopLoss*Point,priceBuy2+TakeProfit*Point,
"Mon bébé",123453,0,Vert) ;
si(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("Ordre BUY ouvert : ",OrderOpenPrice()) ;
}
else Print("Erreur lors de l'ouverture de l'ordre BUY : ",GetLastError()) ;
retour(0) ;
}

}

}