[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 - 2. - page 291
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
Aide s'il vous plaît avoir un conseiller pour briser les fractales. J'ai ramassé de bons paramètres seulement besoin d'ajouter qu'il définit un lot de martingale (2 plus lorsque vous perdez).ou donner la puissance sur le conseiller ne sera que doubler le lot sans attendre un tirage à 2 à la fois exécuter (si disponible).voici un conseiller :
//+------------------------------------------------------------------+
|| Fractals.mq4 |
//| TO |
//| http://www.forex-tradexperts-to.narod.ru |
//+------------------------------------------------------------------+
#property copyright "TO"
#lien de propriété "http://www.forex-tradexperts-to.narod.ru"
#include <WinUser32.mqh>.
extern int TP_Fract_3=300 ;
extern int SL_Fract_3=200 ;
extern int TP_Fract_11=500 ;
extern int SL_Fract_11=300 ;
extern bool buy_Fract_3=true ;
extern bool sell_Fract_3=true ;
extern bool buy_Fract_11=true ;
extern bool sell_Fract_11=true ;
extern bool podtvergdenie=false ;
extern int tofract=10 ;
extern double lots=0.1 ;
extern int ID = 5452 ;
string com ;
double page ;
int init()
{
com=DoubleToStr(ID,0) ;
spread=MarketInfo(Symbol(),MODE_SPREAD)*Point ;
retour(0) ;
}
int deinit()
{
retour(0) ;
}
datetime t1,t2=0 ;
bool order(double price,int type,string c,int m)
{
int i ;
for(i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES) ;
if(OrderComment()==c && OrderMagicNumber()==m && OrderOpenPrice()==price && OrderType()==type)return(false) ;
si(i==0)return(true) ;
}
si(OrdersTotal()==0)return(true) ;
}
int start()
{
int i,ret ;
t1=Temps[0] ;
si(t1!=t2)
{
int fract_buy_3=iHighest(Symbol(),Period(),MODE_HIGH,5,1) ;
int fract_sell_3=iLowest(Symbol(),Period(),MODE_LOW,5,1) ;
int fract_buy_11=iHighest(Symbol(),Period(),MODE_HIGH,21,1) ;
int fract_sell_11=iLowest(Symbol(),Period(),MODE_LOW,21,1) ;
if( fract_buy_3==3 && buy_Fract_3==true)
{
if(OrdersTotal()==0)if(order(High[fract_buy_3]+tofract*Point+spread,4,com,5))OrderSend(Symbol(),OP_BUYSTOP,lots,High[fract_buy_3]+tofract*Point+spread,10,High[fract_buy_3]+tofract*Point-SL_Fract_3*Point,High[fract_buy_3]+tofract*Point+spread+TP_Fract_3*Point,5) ;
for(i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES) ;
if(OrderComment()==com && OrderMagicNumber()==5 && OrderType()==4)
{
OrderModify(OrderTicket(),High[fract_buy_3]+tofract*Point+spread, High[fract_buy_3]+tofract*Point-SL_Fract_3*Point, High[fract_buy_3]+tofract*Point+spread+TP_Fract_3*Point,0,Blue) ;
pause ;
}
if(i==0)if(order(High[fract_buy_3]+tofract*Point+spread,4,com,5))
{
if(podtvergdenie)
{
ret=MessageBox("Signal at "+Symbol()+" H1 BUYSTOP "+"{Set Order ?", "Signal", MB_YESNO|MB_ICONQUESTION) ;
if(ret==IDYES)OrderSend(Symbol(),OP_BUYSTOP,lots,High[fract_buy_3]+tofract*Point+spread,10,High[fract_buy_3]+tofract*Point-SL_Fract_3*Point,High[fract_buy_3]+tofract*Point+spread+TP_Fract_3*Point,5) ;
}
if(!podtvergdenie)OrderSend(Symbol(),OP_BUYSTOP,lots,High[fract_buy_3]+tofract*Point+spread,10,High[fract_buy_3]+tofract*Point-SL_Fract_3*Point,High[fract_buy_3]+tofract*Point+spread+TP_Fract_3*Point,com,5) ;
}
}
}
si( fract_sell_3==3 && sell_Fract_3==true)
{
if(OrdersTotal()==0)if(order(Low[fract_sell_3]-tofract*Point,5,com,5))OrderSend(Symbol(),OP_SELLSTOP,lots,Low[fract_sell_3]-tofract*Point,10,Low[fract_sell_3]+spread-tofract*Point+SL_Fract_3*Point,Low[fract_sell_3]-tofract*Point-TP_Fract_3*Point,com,5) ;
for(i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES) ;
if(OrderComment()==com && OrderMagicNumber()==5 && OrderType()==5)
{
OrderModify(OrderTicket(),Low[fract_sell_3]-tofract*Point,Low[fract_sell_3]+spread-tofract*Point+SL_Fract_3*Point,Low[fract_sell_3]-tofract*Point-TP_Fract_3*Point,0,Red) ;
pause ;
}
if(i==0)if(order(Low[fract_sell_3]-tofract*Point,5,com,5))
{
if(podtvergdenie)
{
ret=MessageBox("Signal on "+Symbol()+"H1 SELLSTOP "+"{Set Order ?", "Signal", MB_YESNO|MB_ICONQUESTION) ;
if(ret==IDYES)OrderSend(Symbol(),OP_SELLSTOP,lots,Low[fract_sell_3]-tofract*Point,10,Low[fract_sell_3]+spread-tofract*Point+SL_Fract_3*Point,Low[fract_sell_3]-tofract*Point-TP_Fract_3*Point,5) ;
}
if(!podtvergdenie)OrderSend(Symbol(),OP_SELLSTOP,lots,Low[fract_sell_3]-tofract*Point,10,Low[fract_sell_3]+spread-tofract*Point+SL_Fract_3*Point,Low[fract_sell_3]-tofract*Point*Point,com,5) ;
}
}
}
si( fract_buy_11==11 && buy_Fract_11==true)
{
if(OrdersTotal()==0)if(order(High[fract_buy_11]+tofract*Point+spread,4,com,21))orderSend(Symbol(),OP_BUYSTOP,lots,High[fract_buy_11]+tofract*Point+spread,10,High[fract_buy_11]+tofract*Point-SL_Fract_11*Point,High[fract_buy_11]+tofract*Point+spread+TP_Fract_11*Point,21) ;
for(i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES) ;
if(OrderComment()==com && OrderMagicNumber()==21 && OrderType()==4)
{
OrderModify(OrderTicket(),High[fract_buy_11]+tofract*Point+spread, High[fract_buy_11]+tofract*Point-SL_Fract_11*Point, High[fract_buy_11]+tofract*Point+spread+TP_Fract_11*Point,0,Blue) ;
pause ;
}
si(i==0)if(order(High[fract_buy_11]+tofract*Point+spread,4,com,21)))
{
if(podtvergdenie)
{
ret=MessageBox("Signal on "+Symbol()+"H4 BUYSTOP "+"{Set Order ?", "Signal", MB_YESNO|MB_ICONQUESTION) ;
if(ret==IDYES)OrderSend(Symbol(),OP_BUYSTOP,High[fract_buy_11]+tofract*Point+spread,10,High[fract_buy_11]+tofract*Point-SL_Fract_11*Point,High[fract_buy_11]+tofract*Point+spread+TP_Fract_11*Point,21) ;
}
if(!podtvergdenie)OrderSend(Symbol(),OP_BUYSTOP,lots,High[fract_buy_11]+tofract*Point+spread,10,High[fract_buy_11]+tofract*Point-SL_Fract_11*Point,High[fract_buy_11]+tofract*Point+spread+TP_Fract_11*Point,com,21) ;
}
}
}
si( fract_sell_11==11 && sell_Fract_11==true)
{
if(OrdersTotal()==0)if(order(Low[fract_sell_11]-tofract*Point,5,com,21))orderSend(Symbol(),OP_SELLSTOP,lots,Low[fract_sell_11]-tofract*Point,10,Low[fract_sell_11]+spread-tofract*Point+SL_Fract_11*Point,Low[fract_sell_11]-tofract*Point-TP_Fract_11*Point,com,21) ;
for(i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES) ;
if(OrderComment()==com && OrderMagicNumber()==21 && OrderType()==5)
{
OrderModify(OrderTicket(),Low[fract_sell_11]-tofract*Point,Low[fract_sell_11]+spread-tofract*Point+SL_Fract_11*Point,Low[fract_sell_11]-tofract*Point-TP_Fract_11*Point,0,Red) ;
pause ;
}
if(i==0)if(order(Low[fract_sell_11]-tofract*Point,5,com,21))
{
if(podtvergdenie)
{
ret=MessageBox("Signal on "+Symbol()+"H4 BUYSTOP "+"{Set Order ?", "Signal", MB_YESNO|MB_ICONQUESTION) ;
if(ret==IDYES)OrderSend(Symbol(),OP_SELLSTOP,lots,Low[fract_sell_11]-tofract*Point,10,Low[fract_sell_11]+spread-tofract*Point+SL_Fract_11*Point,Low[fract_sell_11]-tofract*Point-TP_Fract_11*Point,21) ;
}
if(!podtvergdenie)OrderSend(Symbol(),OP_SELLSTOP,lots,Low[fract_sell_11]-tofract*Point,10,Low[fract_sell_11]+spread-tofract*Point+SL_Fract_11*Point,Low[fract_sell_11]-tofract*Point*Point,com,21) ;
}
}
}
t2=Temps[0] ;
}
retour(0) ;
}
Je suis mauvais en écriture russe, désolé !
Je ne suis pas doué pour écrire le russe, désolé !
Dites-moi qui peut vous aider avec le bloc Klimov, le problème est qu'il ne retourne pas la valeur du dernier fermé, mais la valeur du dernier fermé par la condition
donc à 2 conditions
il renvoie les deux valeurs True,
comment faire pour qu'il retourne uniquement le dernier ordre fermé et non le dernier par une condition,
Voici le code que j'ai ajouté par lots pour ma commodité
Dites-moi qui peut vous aider avec le bloc Klimov, le problème est qu'il ne retourne pas la valeur du dernier fermé, mais la valeur du dernier fermé par la condition
donc à 2 conditions
il renvoie les deux valeurs True,
comment faire pour qu'il retourne uniquement le dernier ordre fermé et non le dernier par une condition,
J'ai ajouté un contrôle de lot au code pour ma commodité.
Avez-vous ajouté la vérification des lots à cette fonction ? Maintenant, ils vérifient les dernières positions fermées avec le lot passé, et le lot est probablement toujours égal à zéro, ou à un nombre entier. La variable ll doit être de type double. Et pourquoi avons-nous besoin du contrôle du lot ici ?
Vous écrivez ce que vous voulez réaliser, et ils vous le diront :)
Oui, et pourquoi le lot est un int ? Le terrain a toujours été double.
Vous pourriez faire ceci : lorsqu'il vous reste une commande, déterminez quelle est la commande restante et recherchez la commande opposée.
Dites-moi qui peut aider avec le bloc Klimov...
Vérifiez les lots dans la fonction ajoutée par vous-même ? Maintenant, ils vérifient les dernières positions fermées avec le lot passé, et le lot est probablement toujours égal à zéro, ou à un nombre entier. La variable ll doit être de type double. Et pourquoi avons-nous besoin du contrôle du lot ici ?
Vous écrivez ce que vous voulez réaliser, et ils vous le diront :)
J'ai déjà tout réalisé, mais il y a un bug, à un certain moment une commande dont je n'ai pas besoin apparaît,
J'ai essayé de le changer en int, à l'origine c'était double, mais ensuite je l'ai cherché et j'ai oublié de le retourner, et si j'utilise une fonction séparée sans vérification du lot, le résultat ne change pas, donc peut-être que je ne l'ai pas vérifié correctement, aidez-moi à comprendre ce qui ne va pas avec ce bogue
Voici à quoi ressemble la demande
Oui, et pourquoi le lot est un int ? Le terrain a toujours été double.
Vous pourriez faire ceci : lorsqu'il vous reste une commande, déterminez quelle est la commande restante et recherchez la commande opposée.
ce n'est pas si simple car les conditions d'ouverture peuvent être 2 sur la vente, et alors cette recherche ne trouvera rien
Ne doublez pas les messages dans différents fils de discussion, c'est de mauvais goût.
Je suis désolé, j'essaierai de me souvenir de supprimer les mêmes messages dans des fils différents,