[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 240
Je ne l'ai pas trouvé non plus. Ça n'a pas d'importance.
Si vous travaillez aux prix d'ouverture, il suffit de vérifier à l'ouverture d'un nouveau bar.
int start(){if(! NevBar())return(0);//.......return(0);}bool NevBar(){staticint prevtime=0;if( prevtime==Time[0])return(false);
prevtime=Time[0];return(true);}
C'est à peu près ça. Et si l'ouverture est possible à d'autres prix. Nous devrions utiliser d'autres mécanismes.
Si une seule position peut être ouverte par un symbole et une période de temps, nous devons contrôler le nombre de positions ouvertes.
int CountOrder[6];// Функция формирует массив с количеством открытых позиций по каждому виду ордеров.//===============================================================================int Order_Count_Calculate(string _Symbol,int _Magic,int _OP=-1){ArrayInitialize( Order_Count,0);for(int i =OrdersTotal()-1; i >=0; i--){if(!OrderSelect( i, SELECT_BY_POS, MODE_TRADES))continue;if(OrderSymbol()!= _Symbol)continue;if(OrderMagicNumber()!= _Magic)continue;
Order_Count[OrderType()]++;}if(_OP>=0)return( Order_Count[_OP]);return(0);}
Maintenant, en vérifiant les valeurs des éléments nécessaires du tableau, nous savons combien de positions de ce type sont ouvertes.
J'ai ceci dans le code, mais je ne comprends pas ce tableau, comment va-t-il détecter s'il y avait un ordre sur cette barre et qu'il a été fermé, et nous allons attendre une nouvelle barre?
Comment puis-je expliquer ? Je me suis peut-être mal exprimé ou j'ai mal compris la fonction.....
1) Si nous ouvrons un ordre sur la barre zéro et qu'il est déjà fermé, alors nous n'ouvrons pas d'autre ordre sur cette barre même s'il y a un signal pour l'ouvrir car nous avons déjà eu une transaction sur cette barre et elle est déjà fermée.
Sur chaque barre il est permis d'ouvrir une seule transaction, s'il y avait une transaction sur cette barre, nous n'ouvrons pas l'ordre, comment faire ?
Aidez les gens.....))) Je suis déjà en train de faire une crise \\\\\\\\>>>>
J'ai ceci dans le code, je ne comprends pas comment il va détecter qu'il y avait un ordre sur cette barre et qu'il a été fermé et nous devrons attendre une nouvelle barre ?
Comment puis-je expliquer ? Je me suis peut-être mal exprimé ou j'ai mal compris la fonction.....
1) Si nous ouvrons un ordre sur la barre zéro et qu'il est déjà fermé, alors nous n'ouvrons pas d'autre ordre sur cette barre même s'il y a un signal pour l'ouvrir parce que nous avons déjà eu une transaction sur cette barre et qu'elle est déjà fermée ; nous attendons simplement la prochaine barre.
Sur chaque barre il est permis d'ouvrir une seule transaction, s'il y avait une transaction sur cette barre, nous n'ouvrons pas l'ordre, comment faire ?
Aidez les gens.....))) Je suis déjà en train de faire une crise \\\\\\\\>>>>
Ici, j'essaie d'écrire un conseiller... Je commence juste à apprendre... L'erreur 4062 apparaît dans le testeur...(ERR_STRING_PARAMETER_EXPECTED - 4062 - un paramètre de type chaîne est attendu)
Je n'arrive pas à trouver où le réparer. Quelqu'un de local peut-il regarder le code :)
externdouble Lots =0.9;//лотexterndouble StopLoss =70;externdouble DecreaseFactor =80;externdouble MaximumRisk =0.014;externdouble MaximumLots =100;//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+double GetSizeLot()//оптимизация лотов{double Lot = Lots;int cycle;int prof =0;int orders = HistoryTotal();// history orders totalint losses =0;// number of losses orders without a breakint vinn =0;int i = orders;//---- select lot size
Lot =NormalizeDouble(AccountFreeMargin()* MaximumRisk /100,1);//----if(AccountFreeMargin()<=14)
DecreaseFactor =14;//----if(AccountFreeMargin()>10000)
DecreaseFactor =60;//----if( DecreaseFactor >0&& orders > DecreaseFactor){//----for( cycle =1; cycle < DecreaseFactor; cycle++){
i--;//----if(OrderSelect( i, SELECT_BY_TICKET, MODE_HISTORY)==false){Print("Error in history!");break;}//----if(OrderCloseTime()>0){
prof = prof +OrderProfit();if(OrderProfit()<=0)
losses++;else
vinn++;}}if( prof <=0&& losses > vinn)
Lot =0.1;if( prof <=0&& vinn > losses)
Lot = Lot -(0.1* losses);if( prof >0&& losses > vinn){
Lot = Lot +(0.1*NormalizeDouble( vinn /4,0.1));}if( prof >0&& losses <= vinn ){
Lot = Lot +(0.1*NormalizeDouble( vinn /2,0.1));}}if(AccountFreeMargin()<300|| Lot <0.1)
Lot =0.1;if( Lot*1275>=AccountFreeMargin())
Lot =NormalizeDouble(AccountFreeMargin()* MaximumRisk /100,1);if( MaximumLots !=0&& Lot > MaximumLots)
Lot = MaximumLots;if( DecreaseFactor > orders)
Lot = Lots;return( Lot);}//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+ int start(){double glav1, sig1, glav2, sig2;int cnt, ticket, total;
glav1 =iCustom(NULL,0,"i_Trend",0,1);
sig1 =iCustom(NULL,0,"i_Trend",1,1);
glav2 =iCustom(NULL,0,"i_Trend",0,2);
sig2 =iCustom(NULL,0,"i_Trend",1,2);
total =OrdersTotal();// проверяем есть ли открытые позицииif( total <1){if(AccountFreeMargin()<(500* Lots))// проверяем денежки на счету{Print("Денег почти нет, осталось всего: ",AccountFreeMargin());return(0);}}// проверяем открытие позиции на покупкуif(( glav2< sig2)&&( glav1> sig1)){OrderSend(Symbol(),OP_BUY, GetSizeLot(),Ask,3,Ask- StopLoss*Point,"AlanMod expert",16384,0,Green);return(0);}// проверяем возможность открытия на продажуif(( glav2> sig2)&&( glav1< sig1)){OrderSend(Symbol(),OP_SELL, GetSizeLot(),Bid,3,Bid+ StopLoss*Point,"AlanMod expert",16384,0,Red);return(0);}for( cnt =0; cnt < total; cnt++){OrderSelect( cnt, SELECT_BY_POS, MODE_TRADES);if(OrderType()<=OP_SELL&&// проверка открытой позиции OrderSymbol()==Symbol())// проверка с нашего ли она графика{if(OrderType()==OP_BUY)// если открыта позиция на покупку{if( glav1< sig1)// проверяем закрывать или нет?{OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);// закрылиreturn(0);// сваливаем}}else// если эта позиция на продажу{if( glav1> sig1)//проверяем закрывать иль нет?{OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet);// закрылиreturn(0);// сваливаем}}}}}
Ici, j'essaie d'écrire un conseiller... Je commence juste à apprendre... L'erreur 4062 apparaît dans le testeur...(ERR_STRING_PARAMETER_EXPECTED - 4062 - un paramètre de type chaîne est attendu)
Je n'arrive pas à trouver où le réparer. Est-ce que l'un de vous, les gars du coin, peut regarder le code :)
1) double NormalizeDouble( double value, int digits), et vous avez (vinn/2, 0.1)
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.
Je n'ai pas trouvé la page.
Je ne l'ai pas trouvé non plus. Ça n'a pas d'importance.
Si vous travaillez aux prix d'ouverture, il suffit de vérifier à l'ouverture d'un nouveau bar.
C'est à peu près ça. Et si l'ouverture est possible à d'autres prix. Nous devrions utiliser d'autres mécanismes.
Si une seule position peut être ouverte par un symbole et une période de temps, nous devons contrôler le nombre de positions ouvertes.
Maintenant, en vérifiant les valeurs des éléments nécessaires du tableau, nous savons combien de positions de ce type sont ouvertes.
Par exemple (exemple de fixation d'un stop d'achat) :
(il n'est pas du tout nécessaire que le prix fixé soit dans le flux de cotation afin de fixer un ordre en attente.
Vous pouvez utiliser le prix actuel ou n'importe quel prix, tant que vous respectez le niveau d'arrêt (du PRIX ACTUEL AU PRIX D'ARRÊT).
( 'EURUSD - Tendances, Prévisions et Conséquences' )
Au lieu de
double priceBUY=..... ....
entrez votre formule
EH...merci beaucoup surtout pour le code joint ! Juste ce que le docteur a ordonné ! ))))
Je ne l'ai pas trouvé non plus. Ça n'a pas d'importance.
Si vous travaillez aux prix d'ouverture, il suffit de vérifier à l'ouverture d'un nouveau bar.
C'est à peu près ça. Et si l'ouverture est possible à d'autres prix. Nous devrions utiliser d'autres mécanismes.
Si une seule position peut être ouverte par un symbole et une période de temps, nous devons contrôler le nombre de positions ouvertes.
Maintenant, en vérifiant les valeurs des éléments nécessaires du tableau, nous savons combien de positions de ce type sont ouvertes.
J'ai ceci dans le code, mais je ne comprends pas ce tableau, comment va-t-il détecter s'il y avait un ordre sur cette barre et qu'il a été fermé, et nous allons attendre une nouvelle barre?
Comment puis-je expliquer ? Je me suis peut-être mal exprimé ou j'ai mal compris la fonction.....
1) Si nous ouvrons un ordre sur la barre zéro et qu'il est déjà fermé, alors nous n'ouvrons pas d'autre ordre sur cette barre même s'il y a un signal pour l'ouvrir car nous avons déjà eu une transaction sur cette barre et elle est déjà fermée.
Sur chaque barre il est permis d'ouvrir une seule transaction, s'il y avait une transaction sur cette barre, nous n'ouvrons pas l'ordre, comment faire ?
Aidez les gens.....))) Je suis déjà en train de faire une crise \\\\\\\\>>>>
J'ai ceci dans le code, je ne comprends pas comment il va détecter qu'il y avait un ordre sur cette barre et qu'il a été fermé et nous devrons attendre une nouvelle barre ?
Comment puis-je expliquer ? Je me suis peut-être mal exprimé ou j'ai mal compris la fonction.....
1) Si nous ouvrons un ordre sur la barre zéro et qu'il est déjà fermé, alors nous n'ouvrons pas d'autre ordre sur cette barre même s'il y a un signal pour l'ouvrir parce que nous avons déjà eu une transaction sur cette barre et qu'elle est déjà fermée ; nous attendons simplement la prochaine barre.
Sur chaque barre il est permis d'ouvrir une seule transaction, s'il y avait une transaction sur cette barre, nous n'ouvrons pas l'ordre, comment faire ?
Aidez les gens.....))) Je suis déjà en train de faire une crise \\\\\\\\>>>>
Consultez le fil de discussion d'Igor KIM intitulé "Useful functions from KimIV". L'une des fonctions répondra à votre question
Ici, j'essaie d'écrire un conseiller... Je commence juste à apprendre... L'erreur 4062 apparaît dans le testeur...(ERR_STRING_PARAMETER_EXPECTED - 4062 - un paramètre de type chaîne est attendu)
Je n'arrive pas à trouver où le réparer. Quelqu'un de local peut-il regarder le code :)
Ici, j'essaie d'écrire un conseiller... Je commence juste à apprendre... L'erreur 4062 apparaît dans le testeur...(ERR_STRING_PARAMETER_EXPECTED - 4062 - un paramètre de type chaîne est attendu)
Je n'arrive pas à trouver où le réparer. Est-ce que l'un de vous, les gars du coin , peut regarder le code :)
1) double NormalizeDouble( double value, int digits), et vous avez (vinn/2, 0.1)
2) OrderSend(Symbol(), OP_BUY, GetSizeLot(), Ask, 3, Ask - StopLoss*Point,NO TAKE_profit, "AlanMod expert", 16384, 0, Green);
comment nommer les tampons dans les indicateurs personnalisés?