[Archive] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 2. - page 422

 
klopp:
Messieurs les programmeurs ! Veuillez m'aider à écrire un Expert Advisor basé sur l'indicateur i-Regr.
Le principe est idiotement simple....
Lorsque la valeur de la ligne supérieure de l'indicateur (valeur2) est supérieure à 1,43, il y a une transaction de vente, lorsque la valeur de la ligne inférieure de l'indicateur (valeur3) est inférieure à 1,40, la vente est fermée et un achat
est effectué, qui est fermé lorsque la valeur2 est supérieure à 1,43. Les valeurs 1.40 et 1.43, je les ai choisies approximativement, car
doit s'ajuster en fonction du délai, il est donc souhaitable qu'elles puissent être modifiées dans les propriétés de l'EA, mais pas dans le programme, car je ne suis pas trop nul en programmation.

Merci d'avance à quiconque répondra.
formayl@mail.ru

Après avoir lu votre échange, j'ai décidé de me traiter d'idiot. Puisqu'il s'agit d'une branche d'aide à ceux qui essaient de se programmer eux-mêmes, alors mon prix est de 100 USD et trois heures après le paiement en WebMoney vous avez un EA, qui fonctionnera pour de vrai (pas un jouet pour la démo). Contactez-moi dans l'espace personnel.

ZS. J'ai complètement oublié : le marchandage est approprié et encouragé (vers le haut, bien sûr).

 

L'indicateur est attaché au même graphique que l'EA, je prends les données de l'indicateur, que je traite ensuite dans l'EA. La question est que j'ai besoin d'obtenir des données de l'indicateur non seulement sur la paire dont le graphique est ouvert, mais aussi sur 4 à 5 autres paires.
Comment mettre cela en œuvre ? Comment faire en sorte qu'il soit possible de le tester dans le testeur de stratégie ?

 
nuan:

L'indicateur est attaché au même graphique que l'EA, je prends les données de l'indicateur et ensuite elles sont traitées dans l'EA. La question est que je dois obtenir les données de l'indicateur non seulement pour la paire de devises dont le graphique est ouvert, mais aussi pour 4-5 paires.
Comment mettre cela en œuvre ? Comment faire en sorte qu'il soit possible de le tester dans le testeur de stratégie ?

ici https://docs.mql4.com/ru/indicators/i Custom

spécifier la paire requise et le cadre temporel requis comme paramètres string symbol, int timeframe - l'indicateur ne doit pas être attaché au graphique

le multiset n'est pas testé dans le testeur, seulement dans MT5 (MQL5)

 
Merci beaucoup !
 
KONDOR:


La suggestion est bonne, merci, MAIS C'EST LENT POUR FONCTIONNER ! !! la question est ouverte

"J'ai un EA, comment puis-je lui faire comprendre qu'un ordre précédemment placé par lui (y compris un ordre en attente) n'existe plus (pour diverses raisons - il a déclenché sl ou TP ou a été supprimé manuellement), c'est-à-dire, comment lui faire demander si l'ordre est vivant ou non. Ces commandes qui sont dans l'éditeur renvoient des valeurs, mais ici la valeur n'est pas claire.

 

Quelle est l'erreur, pourquoi cela ne fonctionne pas. Je voudrais tracer une ligne de 0 à 24 heures par prix DnPrice

if (!ObjectCreate("Down",OBJ_TREND,0,0:00,DnPrice,24:00)) //resigne les lignes
{
Print("error : can't create Down ! code #",GetLastError()) ;
retour(0) ;
}

ObjectSet("Down",OBJPROP_COLOR,Red) ;

 
Stells:

Quelle est l'erreur, pourquoi cela ne fonctionne pas. Je veux dessiner une ligne de 0 à 24 heures au prix de DnPrice

if (!ObjectCreate("Down",OBJ_TREND,0,0:00,DnPrice,24:00)) //resigne les lignes
{
Print("error : can't create Down ! code #",GetLastError()) ;
retour(0) ;
}

ObjectSet("Down",OBJPROP_COLOR,Red) ;

https://docs.mql4.com/ru/basis/types/datetime

bool ObjectCreate( string name, int type, int window, datetime time1, double price1, datetime time2=0, double price2=0, datetime time3=0, double price3=0)

 
bercut0077:

La suggestion est bonne, merci, MAIS CELA FONCTIONNE LENTEMENT ! !! la question est ouverte

"J'ai un EA, comment puis-je lui faire comprendre qu'un ordre précédemment placé par lui (y compris un ordre en attente) n'existe plus (pour diverses raisons - il a déclenché sl ou TP ou a été supprimé manuellement), c'est-à-dire, comment lui faire demander si l'ordre est vivant ou non. Les commandes qui existent dans l'éditeur renvoient des valeurs, mais ici la valeur n'est pas claire.


C'est très facile - il y a une fonction OrdersHistoryTotal - parcourez l'historique et voyez si la commande avec le magicien requis est dans l'historique, cela signifie qu'elle est fermée ou supprimée.

Nous pourrions également ajouter quelques conditions dans la boucle de tri des commandes de l'historique. Par exemple, si l'heure de clôture de l'ordre est inférieure à l'heure d'ouverture du jour, nous ignorerons cet ordre. Par conséquent, le conseiller expert éliminera les ordres qui ont été fermés/supprimés aujourd'hui seulement.

 
nuan:
ZZZEROXXX pourquoi devrait-elle faire des bénéfices ?

Parce que si vous retournez le graphique, le graphique s'agrandit )))). Je ne pense pas qu'il s'agisse uniquement du spread, si nous supposons qu'il n'y a pas beaucoup de transactions, le spread ne joue pas un rôle décisif dans la rentabilité.
 

Dites-moi, pour un ordre à distance, est-il possible de savoir s'il a été clôturé à TakeProfit ou non ?

Puis-je utiliser le

double OrderTakeProfit( )
Renvoie le prix de clôture lorsque la marge bénéficiaire (take profit) de l'ordre actuellement sélectionné a été atteinte.
La commande doit être présélectionnée à l'aide de la fonction OrderSelect().
?

Peut-on créer une condition comme celle-ci

for ( i=OrdersTotal();i>0;i--){ OrderSelect(i,SELECT_BY_POS,MODE_HISTORY  );
if( OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol()&&OrderTakeProfit( )>0 ||
   OrderMagicNumber( )==1000 &&OrderSymbol()==Symbol()&&OrderTakeProfit( )>0

Cette fonction ne renverrait-elle pas un résultat supérieur à zéro pour tout ordre s'il était clôturé, par exemple quel serait le bénéfice ?