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

 

pourquoi pas d'entrée de vente ?

conditions d'entrée

f2=iForce(NULL, 0, 13,MODE_SMA,PRICE_CLOSE,1);
if (f2>0) // buy

{

Opn_B=true; // Критерий откр. Buy
}

if (f2<0) // sell

{

Opn_S=true; // Критерий откр. Sell }

si vous définissez

rsi >50 acheter

rsi<50 vendre

il fonctionne comme il se doit, donc il y a à la fois des ventes et des achats.

 
Dimka-novitsek:
Le conseiller expert a commencé à fonctionner lorsque j'ai supprimé les stops à 20 pips du prix, pas plus près !!! Je me demandais d'où venait l'erreur 130, du serveur de courtage ?

Oui, les serveurs... La taille fixe est une bonne chose, mais il est préférable de regarder MarketInfo, il n'y a que le niveau des stops pour le moment, cela peut changer. https://docs.mql4.com/ru/constants/marketinfo

MODE_STOPLEVEL14Niveau minimum de stop loss/stake profit en pips
 
Je m'en souviendrai ! (probablement)
 

Les gars, dites-moi s'il vous plaît .... Le problème est que j'ai une décimale de 5 dans le terminal et que j'ai 5 transactions ouvertes, j'utilise une boucle pour fermer tous les ordres.

Le problème est que cette boucle ferme des commandes à des prix différents ! Si j'ai 5 ordres, seuls 3 ou 2 d'entre eux sont fermés à un prix et les autres à des prix différents ... Comment faire en sorte que toutes les commandes soient clôturées à un seul prix ?????

if (сумма по профиту всех сделок >= заданная сумма)

{

for (цикл перебора ордеров)

{

if (проверка на символ)

{

if (ордертип==бай)

{

закрыть ордера по БИД цене 

} 

if (ордертип==сел)

{

закрыть ордера по Аск цене 

}  

} 

} 

} 
 
SeALALex:

Merci beaucoup, je vous ai dit que je suis en train d'apprendre, puis-je poser une question LotsInitial - pour quoi faire ? car il construit les ordres correctement, je ne comprends pas quel principe ouvre un ordre avec une telle taille de lot ?

Un dictionnaire répondra à votre question. Et avez-vous regardé dans le code du tout ? Pour combien de temps ? Si c'est votre code, il ne vous faudra pas longtemps pour comprendre la signification des 10 lignes ajoutées.


vilard:

pourquoi n'y a-t-il pas de login de vente ?

conditions d'entrée

f2=iForce(NULL, 0, 13,MODE_SMA,PRICE_CLOSE,1);
if (f2>0) // buy

{

Opn_B=true; // Критерий откр. Buy
}

if (f2<0) // sell

{

Opn_B=true; // Критерий откр. Buy
}

si vous définissez

rsi >50 acheter

rsi<50 vendre

il fonctionne comme il se doit, donc il y a à la fois vente et achat.

Où voyez-vous SELL ? :((


VOLDEMAR:

Les gars, s'il vous plaît, dites-moi .... J'ai un problème avec les 5 décimales dans mon terminal client. 5 transactions ouvertes sur une paire et j'utilise une boucle pour fermer tous les ordres.

Le problème est que cette boucle ferme des commandes à des prix différents ! Si j'ai 5 ordres, seuls 3 ou 2 d'entre eux sont fermés à un prix et les autres à des prix différents ... Comment faire en sorte que toutes les commandes soient clôturées à un seul prix ?????

Il faut du temps pour clôturer une commande. Pendant cette période, le prix peut facilement changer. La réponse est évidente.


Les gens, une question :

Un terminal fonctionne sur deux ordinateurs avec le même compte. Supposons que vous essayez de clôturer deux ordres différents à partir de différents ordinateurs en même temps, quelle sera la réaction du terminal ? :)) "Trading puis occupé." ?

Bien qu'il me semble que c'est la même chose si vous ouvrez deux terminaux sur un ordinateur et que vous vous connectez à un seul compte, mais que vous ne pouvez pas fermer les ordres de manière synchrone...

 

Je m'excuse si je répète la question, car je ne l'ai pas trouvée dans l'historique du fil.

J'ai besoin que le conseiller expert enregistre en permanence les données relatives aux bénéfices des ordres.

Ce serait mieux dans un tableau.

Pour commencer, voici le code :

int h=FileOpen("test.txt",FILE_BIN|FILE_WRITE);
   for (int j=0; j<OrdersTotal(); j++)         // По всем ордерам
  {
   if(OrderSelect(j,SELECT_BY_POS)==true)  // Если есть следующ.
     {                                     
      double ТР =    OrderTakeProfit();     // TakeProfit ордера
      double Profit= OrderProfit();         // Прибыль по ордеру
      double Lots  = OrderLots();           // Количество лотов
      //......Использование значений ТР и Profit в программе..... 
      FileWriteInteger(h,Profit,LONG_VALUE);
      FileWrite(h,"\n");
      FileClose(h);
     }
  }     
Вопрос, а где создать файл? как лучше это все реализовать?
 
Max7, je suis intéressé par la raison pour laquelle l'indicateur ne fonctionne pas comme il le devrait, ceux en traversant "0", je répète encore une fois, qu'avec le critère rsi<>50 tout fonctionne bien !
 
nuan:

Je m'excuse si je répète la question, car je ne l'ai pas trouvée dans l'historique du sujet.

J'ai besoin qu'il enregistre en permanence les données relatives au bénéfice de l'ordre.

Ce serait mieux dans un tableau.

Pour commencer, voici le code :

Créez un fichier avant de vouloir y écrire quoi que ce soit.

Fermez le fichier une fois que tout y a été écrit.

Dans votre cas, les fonctions init() et deinit() fonctionneront.


vilard:
Max7, je suis intéressé par la raison pour laquelle l'indicateur ne fonctionne pas comme il le devrait, ceux en traversant "0", je répète encore une fois qu'avec le critère rsi<>50 tout fonctionne bien !

Max7... C'est drôle ! DD


L'indicateur Force Index fonctionne bien. Vous feriez mieux de vérifier votre code écrit précédemment.

 
Je suis passé par là, pouvez-vous me donner un exemple ou une fonction.
 
nuan:
Je suis passé par là, pouvez-vous me donner un exemple ou une fonction.

Oui, je n'ai pas lu attentivement votre question ! :)) La réponse est ci-dessus...

Selon votre code, le fichier sera créé une fois, mais il sera fermé autant de fois que le nombre d'ordres trouvés par la boucle.

Et si ce code est dans la fonction start(), alors ce problème se produira à chaque tic ! Et chaque fois que FileOpen est exécuté, votre fichier sera effacé...

Vous feriez également bien d'écrire OrderSymbol(), OrderTicket(), OrderType() et d'autres informations facultatives dans le fichier. Sinon, comment pouvez-vous distinguer OrderProfit() l'un de l'autre ? Pour cela, il est préférable de saisir dans un fichier sous forme de tableau(FILE_CSV), qui s'ouvre facilement dans Excel.