[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 - 5. - page 363

 
Pr0t0tip:

Bonjour. J'ai écrit un EA simple (j'essaie de l'apprendre moi-même). Le robot n'ouvre des transactions que pour vendre, mais ne veut pas acheter. Je comprends que je n'ai pas épelé correctement les conditions d'achat ou que je ne les ai pas divisées correctement. Je demande de l'aide. C'est ici :

extern int tp=100 ;

extern int sl=100 ;

extern int H=14 ;

extern int M=00 ;

double ma1, ma2 ;

int start()

{

ma1=iMA (NULL,0,18,0,MODE_SMA,PRICE_CLOSE,0) ;

ma2=iMA (NULL,0,36,0,MODE_SMA,PRICE_CLOSE,0) ;

si (OrdersTotal ()==0 && iStochastic (NULL,0,50,30,3,0,1,MODE_MAIN,4)<iStochastic (NULL,0,50,30,3,0,1,MODE_SIGNAL,4) && ma1<ma2)

OrderSend ("EURUSD", OP_SELL,0.1,Bid,0,Ask+sl*Point,Ask-tp*Point,",123,Red) ;

si (OrdersTotal ()==0 && iStochastic (NULL,0,50,30,3,0,1,MODE_MAIN,4)>iStochastic (NULL,0,50,30,3,0,1,MODE_SIGNAL,4) && ma1>ma2)

OrderSend ("EURUSD", OP_BUY,0.1,Ask,0,Bid+sl*Point,Bid-tp*Point,",123,Red) ;

}

retour (0) ;

Eh bien, regardez - d'un coup d'œil - juste là sur cette ligne :

OrderSend ("EURUSD", OP_BUY,0.1,Ask,0,Bid+sl*Point,Bid-tp*Point,"",123,Red);

Vous, comme dans Short, ajoutez à Bid+sl pour le Stop-Loss et soustrayez de Bid-tp pour le Take-Profit. Au contraire, vous devez soustraire SL de Bid - pour un stop loss, et ajouter TP à Bid - pour un profit.

OrderSend ("EURUSD", OP_BUY,0.1,Ask,0,Bid-sl*Point,Bid+tp*Point,"",123,Red);

Je pense que ça devrait marcher. Essayez-le.

Et vous pouvez voir à quel point le code est agréable et facile à lire, lorsqu'il est inséré à l'aide de SRC.

 
Pr0t0tip:
Quel est ce bouton ?
C'est là que vous écrivez le texte dans la boîte, en haut il y a des boutons que vous utilisez pour faire le texte. L'un d'eux est le bouton SRC. C'est à côté de la caméra.
 
Merci, tout s'est arrangé. Seul le conseiller verse, mais ce n'est pas l'essentiel à ce stade.
 
Dimka-novitsek:

Que signifie "optimiser" ? Avec le robot dans le testeur, optimisez.

Pouvez-vous me dire ce que signifie "(') - types incompatibles C:\Documents and Settings\User\My Documents\FxClub\TeleTRADE\experts\Constructor.mq4 (68, 39)
relative return(errorcomment); ?

Je ne comprends pas bien - était-ce une question ou une réponse ?

Je vais sauter la première ligne car elle n'est pas du tout claire.

Et à propos du 2ème point (si c'était une question) - c'est jurer que le type de parenthèse est incompatible. Probablement, quelque part, la parenthèse est ronde au lieu d'être carrée (ou bouclée).

 

Bonjour, aidez-nous !

Je veux écrire une fonction qui renvoie le type de position ouverte en fonction des prix de l'offre.

Si une certaine quantité de prix Bid augmente constamment - type Bcu et vice versa.

J'ai essayé moi-même, mais ça renvoie toujours 0.

//+----------------------------------------------------------------------------+ 
//|  Описание : Возвращает тип открываемой позиции.                            |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|                                                                            |
//|                                                                            |
//|  Глобальные переменные:     NAME_OP - тип открываемой позиции              |
//|                             BID[]   - массив цены BID                      |
//+----------------------------------------------------------------------------+
int NamePositions(string sy="") 
{
int Kol_Tikov=6;
ArrayResize(BID,Kol_Tikov);
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   if (sy=="0") sy=Symbol();
   {
   for(int i=Kol_Tikov-1;i>0;i--)
         BID[i]=BID[i-1];
         BID[0]=NormalizeDouble(MarketInfo(sy,MODE_BID),5);
         
         if (BID[3]>BID[2] && BID[2]>BID[1]) NAME_OP=OP_SELL;
         if (BID[3]<BID[2] && BID[2]<BID[1]) NAME_OP=OP_BUY;
   }
   return(NAME_OP);
}
 
NICK_R:

Bonjour, aidez-nous !

Je veux écrire une fonction qui renvoie le type de position ouverte en fonction des prix de l'offre.

Si une certaine quantité de prix Bid augmente constamment - type Bcu et vice versa.

J'ai essayé moi-même, mais ça renvoie toujours 0.


 

Avant, c'était comme ça : dans le testeur, vous cochez OPTIMIZE et une fenêtre apparaît avec toutes vos variables EXTERNES. Vous spécifiez le min, le max et le pas. C'est tout.

Maintenant, je coche la case... et rien ne se passe.

pouvez-vous me dire où se trouve la fenêtre des paramètres et de la hauteur du son ?

 
lottamer:

Avant, c'était comme ça : dans le testeur, vous cochez OPTIMIZE et une fenêtre apparaît avec toutes vos variables EXTERNES. Vous spécifiez le min, le max et le pas. C'est tout.

mais maintenant je le vérifie... et rien ne se passe.

pouvez-vous me dire où se trouve la fenêtre des paramètres et de la hauteur des sons ?

Lorsque vous êtes dans le testeur, allez dans les paramètres de l'EA - il y a 4 colonnes. La première colonne est ce qui fonctionnera simplement sans optimisation. La 2e colonne est celle des paramètres initiaux de l'optimisation, la 3e colonne est celle de l'étape et la 4e colonne celle de la fin de l'optimisation.
 
Chiripaha:
Lorsque vous êtes dans le testeur, allez dans les paramètres de l'EA - il y a 4 colonnes. La première colonne est ce qui fonctionnera simplement sans optimisation. La deuxième colonne indique les paramètres initiaux de l'optimisation, la troisième colonne indique les étapes et la quatrième colonne indique la fin de l'optimisation.


Je ne vois que les PROPRIÉTÉS EXPERTES dans le testeur. Je ne vois pas les paramètres du conseiller expert. Où sont-ils ?

il n'y a rien de tel dans les propriétés. construire 500

 
NICK_R:

Bonjour, aidez-nous !

Je veux écrire une fonction qui renvoie le type de position ouverte en fonction des prix de l'offre.

Si une certaine quantité de prix Bid augmente constamment - type Bcu et vice versa.

J'ai essayé moi-même, mais ça renvoie toujours 0.

Nikolay, c'est très bien que tu apprennes à programmer et à créer des programmes. Mais le fait est que vous n'avez pas exactement demandé de l'aide pour un cas particulier et obscur du programme, mais vous avez en fait décrit les termes de référence pour écrire le programme.

Ce que vous avez montré, à mon avis, est métaphoriquement parlant par rapport aux robots, un tas de pièces détachées hétérogènes. Ce n'est pas bien du tout.

Il n'est donc pas possible de signaler une erreur spécifique, car tout doit être refait d'une manière totalement différente. - IMHO, je ne prétends pas être plus que cela.

Mais ce n'est pas une raison pour s'énerver. Continuez à apprendre à écrire. Là, comme on dit, à la place de vous, bien sûr, vous pouvez "manger" (pour faire le travail), mais vous-mêmes ne vous en nourrissez pas (c'est-à-dire que vous n'apprenez pas). Alors, allez-y. Si l'un marche sur le chemin de l'autre.

Essayez d'écrire à nouveau avec une approche différente du problème. - Ça a marché pour moi.