Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1072

 
jarikn:
Merci. Je vais m'en occuper.

Et merci, vous m'avez rappelé un vieux système qui fonctionnait dans le profit. Je dois en prendre note à mon aise et le tester sur le marché actuel.

 
jarikn:
Bonjour à tous. Je suis novice en matière de programmation.
J'ai écrit un conseiller expert simple et maintenant j'ai besoin d'y ajouter la condition suivante.
Si un stop loss est déclenché par un ordre d'achat, nous ouvrons alors un ordre de vente.
Veuillez m'aider avec ce code

Plus d'options :

1. Lors de l'ouverture de l'ordre d'achat, placez l'ordre SellStop au niveau du stop loss de l'ordre d'achat. Votre souhait sera alors exaucé par le serveur. Mais dans des situations exceptionnellement rares mais précises et non :-)

2. ne pas mettre de Stop Loss du tout, et mettre un SellStop de double volume. Ceci sera également traité rapidement par le serveur. À la fin de la journée ou lorsque la marge est épuisée, vous devez exécuter un UnLock, qui ferme mutuellement les ordres opposés (CloseBy).

Cependant, il y a une autre nuance : les ordres stop (et le stop loss aussi) peuvent ne pas fonctionner. Et ce, assez souvent.
C'est-à-dire que dans un robot de "combat", nous devons encore le vérifier.
Общие принципы - Торговые операции - Справка по MetaTrader 5
Общие принципы - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Перед тем как приступить к изучению торговых функций платформы, необходимо создать четкое представление об основных терминах: ордер, сделка и позиция. — это распоряжение брокерской компании купить или продать финансовый инструмент. Различают два основных типа ордеров: рыночный и отложенный. Помимо них существуют специальные ордера Тейк Профит...
 
Vladimir Simakov:

Il écrit que vous ne pouvez pas initialiser une entité wchar_t avec une valeur const char*.

Si vous ne le comprenez pas, c'est malheureusement que vous n'avez pas les bases de la langue. Il est trop tôt pour écrire une dll, surtout pour un langage aussi spécifique que mql. Commencez par les éléments de base.

Je ne sais pas ce qu'ils vous conseillent de faire. Il n'y aura jamais de bon moment pour ce moment d'apprentissage des bibliothèques : c'est maintenant ou jamais.

 
Maxim Kuznetsov:

2. ne pas mettre de stop loss du tout, mais mettre un SellStop de double volume. Ceci sera également géré par le serveur et rapidement. À la fin de la journée ou lorsque la marge est épuisée, vous devez exécuter un UnLock, qui ferme mutuellement les ordres opposés (CloseBy).

Nous devrions être plus prudents avec CloseBy car toutes les sociétés de courtage ne prennent pas en charge cette fonctionnalité.

 
Je ne suis pas un programmeur, donc je ne peux pas résoudre la question la plus simple : comment lier la barre de zéro au temps, minutes :00, heures 00 :,01 :,02 : etc. Quelqu'un peut-il me donner un indice ?
 
Creativ:
Je ne suis pas un programmeur, donc je ne peux pas résoudre la question la plus simple : comment lier la barre de zéro au temps, minutes :00, heures 00 :,01 :,02 : etc. Quelqu'un peut-il le suggérer ?

Il existe une fonction pour cela.

iTime(символ,таймфрейм, номер бара)

Il renvoie l'heure de la barre.

 

Bonjour à tous. Les gars, s'il vous plaît, aidez-moi. Je suis nouveau dans la programmation.
Comment réaliser cela en code MQL4.
Par exemple, je vais appuyer sur le bouton A et un curseur <Screenshot_2> apparaîtra sur un graphique comme celui-ci.
Sur la fonction Draw Rectangle <Screenshot_1> il n'y a pas de touche de raccourci.Comment obtenir cette fonction.

Capture d'écran_1

Capture d'écran_1

Capture d'écran_2.

Capture d'écran_2

Merci.

 
les gars, aidez-moi avec le conseiller expert, s'il vous plaît. j'en ai marre de.... Je n'arrive pas à le réparer, il n'y a que des erreurs.
Voici l'essentiel.
Il fonctionne sur l'indicateur équitable Tma.
1) Dès que le prix est supérieur à la ligne supérieure - l'ordre de vente est ouvert, le prix est inférieur à la ligne inférieure - l'ordre d'achat est ouvert.
J'ai tout fait, mais le fait est que,
2) Dès que j'ai déclenché un stop loss un ordre ouvre le même ordre ! Comment puis-je corriger ce bug ?
3) L'ordre n'est pas fermé lorsque le prix franchit la ligne opposée ! Il semble fonctionner, mais il ne le fait pas. Il se ferme au niveau du stop loss ou du take profit.

Je voudrais également ajouter une condition : si un Stop Loss s'est déclenché à l'achat, ouvrir un ordre de vente. Je pense que je peux m'en occuper moi-même. Aidez-moi juste à réparer ces erreurs.
Je ne sais pas quoi en faire. Je pense que je devrais le faire moi-même).
Dossiers :
777.mq4  10 kb
TMA_Fair.mq4  9 kb
 

S'il vous plaît, aidez-moi avec le commutateur achat-vente, je suis en train d'apprendre !

void OnTick()

{

MAprice=iMA(Symbol(),0,MAperiod,MAshift,MODE_SMA,PRICE_CLOSE,1) ;

si(CountBuy() + CountSell() == 0 && Ask > MAprice)

{

if(OrderSend(Symbol(),OP_BUY,lot,Ask,slip,0,0,NULL,magic,0,clrBlue)<1)

Print("Impossible d'ouvrir un ordre d'achat!") ;

si(CountBuy()>=1)

{

prix = FindLastBuyPrice() ;

si((prix - demande) >= étape*point)

{

if(OrderSend(Symbol(),OP_BUY,lot,Ask,slip,0,0,NULL,magic,0,clrBlue)<1)

Print("Impossible d'ouvrir un ordre d'achat !")

}

}

si(CountBuy() + CountSell() == 0 && Bid < MAprice)

{

if(OrderSend(Symbol(),OP_SELL,lot,Bid,slip,0,0,NULL,magic,0,clrRed)<1)

Print("Impossible d'ouvrir un ordre de vente !")

}

}

si(CountSell()>=1)

{

prix = FindLastSellPrice() ;

si((prix - offre) >= étape*point)

{

if(OrderSend(Symbol(),OP_SELL,lot,Bid,slip,0,0,NULL,magic,0,clrRed)<1)

Print("Impossible d'ouvrir un ordre de vente !") ;

}

}

double op = CalculateProfit() ;

si(op>=profit)

{

CloseAll() ;

}

}


//+------------------------------------------------------------------+

void CloseAll()


ou où apprendre ?

Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Приказы на проведение торговых операций оформляются ордерами. Каждый ордер имеет множество свойств для чтения, информацию по ним можно получать с помощью функций Идентификатор позиции, который ставится на ордере при его исполнении. Каждый исполненный ордер порождает сделку, которая открывает новую или изменяет уже существующую позицию...
 
Cette fonction ne lie pas la barre à l'heure. Je veux Bar[0]=:00(minutes) ou 01:00, 02:00 ...de chaque jour. Ainsi, ce n'est qu'à partir d'un certain moment que l'algorithme sera calculé. Le reste du temps, l'indicateur est à ma charge.
Seric29:

Il existe une fonction pour cela.

Il renvoie l'heure de la barre.