Qu'en est-il des commandes d'autres personnes (utilisant d'autres symboles et magiciens) ? Dans le testeur, cela fonctionnera, mais s'il y a autre chose sur le compte que cette EA, la manière correcte est la suivante
Vous allez induire le gars en erreur, et il ne peut pas lire les descriptions. Imaginez à quel point il sera confus, c'est pourquoi je l'ai écrit de manière à ce qu'il le comprenne mieux.
Seulement avec Expert Advisor je ne comprends toujours pas comment la fonction Delta fonctionne Les transactions ne sont pas déclenchées dans mes conditions Delta=30 Cela signifie que je veux que mon Expert Advisor ouvre une position +-30 en pips. Mais il s'ouvre à 5-10 pips à la hausse et à la baisse, ce n'est pas clair.....
La fonction Delta ne sait vraiment pas comment elle fonctionne :( Peut-être y a-t-il d'autres solutions simples ? J'ai trouvé une fonction Distance=30 // Distanceentre le prix actuel et le prix de l'ordre en attente Peut-on l'implémenter non seulement pour les ordres en attente ? L'idée est la même : suivez la barre actuelle, son prix ouvert et si, pendant une barre de 5 minutes, son prix augmente ou diminue de, disons, 30 pips par rapport au marché ouvert de cette barre de 5 minutes, alors seulement ouvrez une position....... Ma stratégie ne fonctionne pas avec les ordres en attente.....
Apparemment, ici il est nécessaire avec les signes (polarité) d'un Delta pour comprendre à l'achat et à la vente, "pour" dans le code ci-dessus, par exemple, à l'achat la valeur(iOpen(NULL,0,0)-Ask all time sera négative. Et la transaction est ouverte au prix d'ouverture de la barre (iOpen(NULL,0,0)-Ask>=Delta...
Si vous essayez de cette façon (acheter) -
if(Ask - iOpen(NULL,0,0)>=Delta*Point)//Цена выросла на больше или = Delta пунктов
c'est-à-dire que nous devrons éventuellement tester cette variante :
int start() { if(OrdersTotal()!=0) return ; //Suivre une seule transaction.
//---- if (Bid - iOpen(NULL,0,0)<=Delta*Point) //The price fell by less or = Delta points //Null-tek instrument, 0-tek.chart, 0-tracking tek bar { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point, "Buy",MagicNumber,11111,Green) ;
} if (Ask - iOpen(NULL,0,0)>=Delta*Point) //Le prix a augmenté de plus ou = points Delta { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point, "Sold",MagicNumber,22222,Green) ; } //---- return(0) ; }
Est-ce que je devine correctement ou ai-je confondu Ask et Bid dans les lignes :
if (Bid - iOpen(NULL,0,0)<=Delta*Point) //Цена упала на меньше или = Delta пунктов
if (Ask - iOpen(NULL,0,0)>=Delta*Point) //Цена выросла на больше или = Delta пунктов
Si vous n'avez pas de compte, veuillez vous inscrire
Autorisez l'utilisation de cookies pour vous connecter au site Web MQL5.com.
Veuillez activer les paramètres nécessaires dans votre navigateur, sinon vous ne pourrez pas vous connecter.
Vous êtes connecté. L'authentification à deux facteurs a été désactivée. Configurez-la à nouveau et scannez un nouveau code QR, ou continuez avec l'authentification à deux facteurs désactivée.
{
if(OrdersTotal() !=0) return ;
//----
if (iOpen(NULL,5,0)-Bid>Delta*Point) //The price has dropped more than Delta points
........
si(OrdersTotal ()!=0) retour ;
Qu'en est-il des commandes d'autres personnes (utilisant d'autres symboles et magiciens) ? Dans le testeur, cela fonctionnera, mais s'il y a autre chose sur le compte que cette EA, la manière correcte est la suivante
La fonction retournera false s'il n'y a pas de position ouverte par le symbole courant avec le magicien spécifié (qui lui est passé).
Imaginez à quel point il sera confus, c'est pourquoi je l'ai écrit de manière à ce qu'il le comprenne mieux.
Les deux cas ont été rattrapés, merci beaucoup.
Les transactions ne sont pas déclenchées dans mes conditions
Delta=30
Cela signifie que je veux que mon Expert Advisor ouvre une position +-30 en pips. Mais il s'ouvre à 5-10 pips à la hausse et à la baisse, ce n'est pas clair.....
Peut-être y a-t-il d'autres solutions simples ?
J'ai trouvé une fonction
Distance=30 // Distance entre le prix actuel et le prix de l'ordre en attente
Peut-on l'implémenter non seulement pour les ordres en attente ?
L'idée est la même : suivez la barre actuelle, son prix ouvert et si, pendant une barre de 5 minutes, son prix augmente ou diminue de, disons, 30 pips par rapport au marché ouvert de cette barre de 5 minutes, alors seulement ouvrez une position.......
Ma stratégie ne fonctionne pas avec les ordres en attente.....
Et vous posteriez votre code entier ici. Et voir pourquoi Delta ne fonctionne pas...
//+------------------------------------------------------------------+ //| Expert-000001.mq4 | //| Copyright © 2008, salesman*** | //| http://www.forexgrand.ru | //+------------------------------------------------------------------+ #property copyright "Copyright © 2008, salesman***" #property link "http://www.forexgrand.ru" #include <WinUser32.mqh> #include <stdlib.mqh> extern double StopLoss=30; // Stop Loss extern double TakeProfit=3; // Take Profit extern double Lots=0.5; // Объем сделки в % extern double Slippage =3; // Максимальное отклонение от запрошенной цены extern double MagicNumber=0; // Order ID int ticket; int Delta=30; // Сигнал приказа в пунктах int TimeForSleep = 10; // Время для отдыха после сделки //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { if(OrdersTotal()!=0) return; //Выполнять только одну сделку. //---- if (iOpen(NULL,0,0)-Ask>=Delta*Point) //Цена упала больше или = Delta пунктов //Null-тек инструмент, 0-тек.график, 0-слежка за тек баром { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point,"Купил",MagicNumber,11111,Green); } if (iOpen(NULL,0,0)-Bid<=Delta*Point) //Цена выросла больше или = Delta пунктов { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point,"Продал",MagicNumber,22222,Green); } //---- return(0); } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+Voici l'ensemble du code.....
Oui, en effet. Delta.... ne fonctionne pas
Apparemment, ici il est nécessaire avec les signes (polarité) d'un Delta pour comprendre à l'achat et à la vente, "pour" dans le code ci-dessus, par exemple, à l'achat la valeur(iOpen(NULL,0,0)-Ask all time sera négative. Et la transaction est ouverte au prix d'ouverture de la barre (iOpen(NULL,0,0)-Ask>=Delta...
Si vous essayez de cette façon (acheter) -
{
if(OrdersTotal()!=0) return ; //Suivre une seule transaction.
//----
if (Bid - iOpen(NULL,0,0)<=Delta*Point) //The price fell by less or = Delta points
//Null-tek instrument, 0-tek.chart, 0-tracking tek bar
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point, "Buy",MagicNumber,11111,Green) ;
}
if (Ask - iOpen(NULL,0,0)>=Delta*Point) //Le prix a augmenté de plus ou = points Delta
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point, "Sold",MagicNumber,22222,Green) ;
}
//----
return(0) ;
}