Un conseiller qui suivrait le taux sur un graphique de cinq minutes avec les conditions après le lancement : - page 7
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
{
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) ;
}