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

 

Добрый день.Очень нужен советник,который будет лишь закрывать сделки.Дело в том,что вход в рынок может быть и обдуманный и с ясной головой и четкими правилами...А вот с выходом у многих-засада.Тут весь набор психологии: и нервы и надежда,и страх с жадностью.Думаю,что при входе по тренду,выход должен обеспечивать стохастик пересекающий уровень 50%.При пересечении сверху вниз должен закрывать бай-ордера,а при пересечении снизу вверх соответственно селл-ордера.

Au fait, ce conseiller peut remplacer le stupide stop-loss ...... Je pense qu'il ne serait pas trop difficile à écrire, et je pense qu'il serait utile.

 
Lim1:

Bonjour !

J'ai une question : où vont les résultats des tests (rentabilité, nombre total de transactions, etc.) et comment faire pour que ces chiffres soient affectés aux variables (dans le code) à la fin des tests ?

Comment puis-je faire en sorte que ces chiffres aillent dans les variables (dans le code) après les tests ? Merci !


Vous écrivez sur l'optimisation... Sélectionnez l'option d'optimisation (passe) que vous voulez, cliquez deux fois dessus avec votre souris - c'est tout... paramètres de ce passage

Ils se trouvent dans les "propriétés" du conseiller expert. Vous sélectionnez la période d'essai avec ces paramètres et allez de l'avant... - Cliquez sur "démarrer".

 

Veuillez me donner le code pour calculer le facteur de récupération.

 

Bon après-midi,

Je n'arrive pas à décider quelle démo utiliser, beaucoup dans le testeur n'exécutent pas correctement l'algorithme.

Quel est votre conseil ?

Qu'est-ce qu'une martin et un verrouillage ?

 

что такое мартин и локирование?


Effectuez une recherche sur le site web. Martingale. Le verrouillage est l'ouverture d'une position opposée. C'est juste pour vous donner le temps d'y réfléchir. Une position prévaut sur l'autre et le compte est en quelque sorte gelé.
 

Pourriez-vous me dire s'il est possible d'afficher les données des résultats des tests sous forme d'alertes dans le journal ?

Par exemple, entrez une variable qui obtiendrait la valeur du montant total des transactions (ou la valeur de la rentabilité totale...) à la fin du test.

Comment faire ?

L'optimisation est hors de question...

 
Lim1:

Bonjour !

J'ai une question : où vont les résultats des tests (rentabilité, nombre total de transactions, etc.) et comment faire pour que ces chiffres soient affectés aux variables (dans le code) à la fin des tests ?

Une description détaillée de cet article peut être trouvée dans monAlpari.

Voir Auto-évaluation des résultats des tests d'un conseiller expert

 

il y a deux lignes

La stratégie est la suivante : croiser les achats à la hausse et les ventes à la baisse.

J'ai décidé d'envisager une possibilité : après avoir franchi les lignes, le prix descend jusqu'à la ligne avec une longue période, acheter, placer un ordre d'achat/vente.

J'ai décidé de le faire avec l'aide des drapeaux haut/bas,

mais ça n'a pas marché

if (SMA_1_0 > SMA_2_0 && SMA_1_1 < SMA_2_1) // Vérifier le croisement vers le haut
{

ClosePositions() ; // s'il y a un ordre, supprimez-le.

A=1 ; //flagging vers le haut
B=0 ; //baisse du drapeau
}
si (A ==1 )

{
SL=Bid - StopLoss*Point ; // Calcul du SL ouvert.
TP=Bid + TakeProfit*Point ; // Calcul du TP ouvert.
Alert("Essayer d'ouvrir un achat. Attendre la réponse...") ;
Prix_H =SMA_2_0 + 10* Point ;
OpenPosition(Symbol(), OP_BUYLIMIT, Price_H,Lts, SL, TP) ;

if (Ticket > 0) // ça a marché :)
{
Alerte ("Ouvrir un ordre d'achat ",Ticket ;)
A=0 ;
B=0 ;
retour ;
}
}
//--------------------------------------------------------------------
if (SMA_1_0 < SMA_2_0 && SMA_1_1 > SMA_2_1) // Contrôle du croisement vers le bas
{

ClosePositions() ;

A=0 ; //flag vers le haut
B=1 ; //flagging vers le bas
}
if (B == 1) // drapeau vers le bas si le prix est tombé sur la ligne SMA
{
SL=Ask + StopLoss*Point ; // Calcul du SL ouvert
TP=Ask - TakeProfit*Point ; // Calcul du TP ouvert.
Alert("Tentative d'ouverture de la vente. En attente de réponse...") ;
Prix_L =SMA_2_0 - 10* Point ;
OpenPosition(Symbol(), OP_SELLLIMIT, Price_L,Lts, SL, TP) ;
if (Ticket > 0) // ça a marché :)
{
Alerte ("Ordre de vente ouvert ",Ticket ;)
A=0 ;
B=0 ;
return ; // Sortie de start()
}
}
//---------
retour(0) ;
}
//+------------------------------------------------------------------+
//| fonction de désinitialisation des experts |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
retour(0) ;
}
//+------------------------------------------------------------------+

//+----------------------------------------------------------------------------+
//| Auteur : Kim Igor V. alias KimIV, http://www.kimiv.ru/ |
//+----------------------------------------------------------------------------+
//| Version : 19.02.2008 |
//| Description : Fermeture des positions au prix du marché.
//+----------------------------------------------------------------------------+
//| Paramètres : |
//| sSymbol - nom de l'instrument ("" - n'importe quel symbole, |
//| NULL - symbole actuel) |
//| iOperation - opération (-1 - position quelconque) |
//| iMagic - MagicNumber (-1 - n'importe quelle magik) |
//+----------------------------------------------------------------------------+

void ClosePositions(string sSymbol = "", int iOperation = -1, int iMagic = -1) {
int i, k = OrdersTotal() ;

//si (sSymbol == "0") sSymbol = Symbol() ;
for (i = k - 1 ; i >= 0 ; i--) {
si (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
si ((OrderSymbol() == sSymbol || sSymbol == "") && (iOperation < 0 || OrderType() == iOperation)) {
if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
si (iMagic < 0 || OrderMagicNumber() == iMagic) ClosePosBySelect() ;
}
}
}
}
}

//+----------------------------------------------------------------------------+
//+----------------------------------------------------------------------------+
//| Auteur : Kim Igor V. alias KimIV, http://www.kimiv.ru/ |
//+----------------------------------------------------------------------------+
//| Version : 13.06.2007 |
//| Description : Fermeture d'une position présélectionnée.
//+----------------------------------------------------------------------------+
void ClosePosBySelect() {
doubles pages ;

si (OrderType()==OP_BUY) {
pp=MarketInfo(OrderSymbol(), MODE_BID) ;
OrderClose(OrderTicket(), OrderLots(), pp, Slippage) ;
}
si (OrderType()==OP_SELL) {
pp=MarketInfo(OrderSymbol(), MODE_ASK) ;
OrderClose(OrderTicket(), OrderLots(), pp, Slippage) ;
}
}

//+----------------------------------------------------------------------------+
//| Auteur : Kim Igor V. alias KimIV, http://www.kimiv.ru/ |
//+----------------------------------------------------------------------------+
//| Version : 13.06.2007 |
//| Description : Ouverture d'un poste. Version de la fonction pour les tests d'historique. |
//+----------------------------------------------------------------------------+
//| Paramètres : |
//| sy - nom de l'instrument ("" - symbole actuel) |
//| op - opération |
|| ll - lot
//| sl - niveau d'arrêt |
//| tp - take level |
//| mn - Numéro magique |
//+----------------------------------------------------------------------------+
void OpenPosition(string sy, int op, double ll, double sl=0, double tp=0, int mn=0) {
doubles pages ;
int err, ticket ;

si (sy=="") sy=Symbole() ;
si (op==OP_BUY) {
pp=MarketInfo(sy, MODE_ASK) ;
} else {
pp=MarketInfo(sy, MODE_BID) ;
}
ticket=OrderSend(sy, op, ll, pp, Slippage, sl, tp, "", mn, 0) ;
if (ticket<0) {
err=GetLastError() ;
Print("Error(",err,") open ",GetNameOP(op)," : ",ErrorDescription(err)) ;
Print("Ask=",Ask," Bid=",Bid," sy=",sy," ll=",ll,
" pp=",pp," sl=",sl," tp=",tp," mn=",mn) ;
}
}

//+----------------------------------------------------------------------------+
//| Auteur : Kim Igor V. alias KimIV, http://www.kimiv.ru/ |
//+----------------------------------------------------------------------------+
//| Version : 01.09.2005 |
//| Description : Renvoie le nom de l'opération commerciale.
//+----------------------------------------------------------------------------+
//| Paramètres : ||
//| iOperation - identifiant de l'opération commerciale ||
//+----------------------------------------------------------------------------+

string GetNameOP(int iOperation) {
switch (iOperation) {
case OP_BUY : return ("Buy") ;
cas OP_SELL : return ("Sell") ;
case OP_BUYLIMIT : return ("Buy Limit") ;
cas OP_SELLLIMIT : return ("Limite de vente") ;
case OP_BUYSTOP : return ("Buy Stop") ;
cas OP_SELLSTOP : return ("Sell Stop") ;
par défaut : retour ("Unknown Operation") ;
}
}

 

Messieurs, chers amis ! Qui sait, partagez le lien où vous pouvez voir/ressentir les formules de résolution des équations de la progression arithmétique du second ordre.

Par exemple :

Dans une progression arithmétique, les différences entre les termes consécutifs sont constantes. Si les différences ne sont pas constantes, mais que les différences des différences sont constantes, alors la progression est appelée une progression arithmétique du second ordre. Les progressions arithmétiques d'ordres supérieurs sont définies de manière similaire. Par exemple, 2, 6, 12, 20, 30, ..., n est une progression arithmétique du second ordre car les différences de 4, 6, 8, 10, ..., n forment une progression arithmétique avec d = 2.

Ici, j'ai besoin de formules de calcul pour trouver le nombre de membres d'une telle progression... J'ai cherché partout sur Internet - seulement des mathématiques simples autour... :((((

 
artmedia70:

Messieurs, chers amis ! Qui sait, partagez s'il vous plaît le lien où vous pouvez voir/ressentir les formules pour résoudre les équations de progression arithmétique du second ordre.

Googlé
Raison: