[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 814
Dans le même temps, la balance peut être dans les nuages, et les actions peuvent connaître une forte baisse. Par conséquent, la taille du lot peut sembler plus grande qu'elle ne peut être ouverte et toute la structure dépassera...
Avant l'ouverture, il est préférable de corriger le lot pour qu'il soit vraiment possible.
J'ai créé une fonction à cet effet. Il a été légèrement corrigé par Viktor(Vinin) - essayez-le :
// ===========================================================================// --- Функция рассчёта величины лота для открытия позиции. Редакция VininI---// Если лот превышает возможный для открытия позы, то он корректируется // ===========================================================================double CorrectLots(double lt)
{
double ltcorr;
double pnt = MarketInfo(Symbol(),MODE_POINT);
double mspr = MarketInfo(Symbol(),MODE_SPREAD);
double dig = MarketInfo(Symbol(),MODE_DIGITS);
double MaxLot = MarketInfo(Symbol(),MODE_MAXLOT);
double MinLot = MarketInfo(Symbol(),MODE_MINLOT);
double StpLot = MarketInfo(Symbol(),MODE_LOTSTEP);
double OneLot = MarketInfo(Symbol(),MODE_MARGINREQUIRED);
double TradeMrg = NormalizeDouble(AccountFreeMargin()/4.0,dig); // Свободные средства, разрешенные к торговлеdouble Money=lt*OneLot+mspr*pnt; // Вычисляем стоимость открываемой позыif (Money>=TradeMrg) // Если цена позиции равна или больше, чем есть свободных средств, то ...
{
lt=MathFloor(TradeMrg/OneLot/StpLot)*StpLot; // ... рассчитаем допустимый лотPrint("Func CorrectLots: полученный лот ",lt," скорректирован под допустимый ",lt);
}
elsePrint("Func CorrectLots: лот вернули без изменений");
lt=MathMin(MaxLot, MathMax(MinLot, lt)); // Проверим превышение допустимых ...return(lt);
}
Dans la ligne.
double TradeMrg = NormalizeDouble(AccountFreeMargin()/4.0,dig); // Свободные средства, разрешенные к торговле
... La marge libre est divisée par quatre et seul un quart des fonds libres est considéré comme éligible pour le trading.
Vous pouvez supprimer la division par 4 et mettre autant que vous voulez, même utiliser toute la marge.
Mais la fonction ne vous permettra pas d'utiliser une taille de lot supérieure à celle autorisée.
artmedia70: Dans le même temps, l'équilibre peut être dans les nuages, tandis que l'équité est dans la grande descente. Respectivement, la taille du lot peut sembler plus grande qu'elle ne peut être ouverte et toute la structure va dépasser...
Pourquoi tout est si triste...
le dernier return() de ma fonction donnera le lot minimum disponible pour l'instrument. Si le compte est un compte en cents avec un gros effet de levier, alors quand le solde est inférieur à 600, le conseiller expert peut négocier un peu plus longtemps :)
SZZY : le problème est spécifique et la branche est de donner une direction au questionneur.
le dernier return() de ma fonction donnera le lot minimum disponible pour l'instrument. Si le compte est un compte en cents avec un gros effet de levier, alors quand le solde est inférieur à 600, le conseiller expert peut négocier un peu plus longtemps :)
SZZY : Le problème est spécifique, et la branche pour donner une direction à l'auteur de la question.
// ==========================================================================// ------------ Функция рассчёта величины лота для открытия позиции ---------// Если лот превышает возможный для открытия позы, то он корректируется // ==========================================================================double CorrectLots(double lt)
{
double ltcorr;
double pnt = MarketInfo(Symbol(),MODE_POINT);
double mspr = MarketInfo(Symbol(),MODE_SPREAD);
double dig = MarketInfo(Symbol(),MODE_DIGITS);
double MaxLot = MarketInfo(Symbol(),MODE_MAXLOT);
double MinLot = MarketInfo(Symbol(),MODE_MINLOT);
double StpLot = MarketInfo(Symbol(),MODE_LOTSTEP);
double OneLot = MarketInfo(Symbol(),MODE_MARGINREQUIRED);
double TradeMrg = NormalizeDouble(AccountFreeMargin()/4.0,dig); // Свободные средства, разрешенные к торговле
lt=MathAbs(lt);
ltcorr=lt; // Зададим начальное значением ltcorr равным значению ltif (lt>=MaxLot) ltcorr=MaxLot; // Проверим превышение допустимых ...if (lt<=MinLot) ltcorr=MinLot; // ... значений лотаdouble Money=lt*OneLot+mspr*pnt; // Вычисляем стоимость открываемой позыif (Money<TradeMrg) // Если свободных средств больше, чем цена позиции -
{
return(ltcorr); // ... возвращаем неизменённый лот
}
elseif (Money>=TradeMrg) // Если цена позиции равна или больше, чем есть свободных средств, то ...
{
ltcorr=MathAbs(MathFloor(TradeMrg/OneLot/StpLot)*StpLot); // ... рассчитаем допустимый лотdouble MoneyCorr=ltcorr*OneLot+mspr*pnt;
Print("Func CorrectLots: лот ",lt," скорректирован до ",ltcorr,
" Стоимость позы до корректировки = ",Money,
" Стоимость позы после корректировки = ",MoneyCorr
);
return(ltcorr); // ... и вернём его значение
}
Print("Func CorrectLots: лот вернули без изменений");
return(ltcorr); // Возврат изначального лота в непредусмотренных случаях с сообщением
}
le dernier return() de ma fonction donnera le lot minimum disponible pour l'instrument. Si le compte est un compte en cents avec un gros effet de levier, alors quand le solde est inférieur à 600, le conseiller expert peut négocier un peu plus longtemps :)
SZZY : le problème est spécifique, et la branche pour donner une direction au questionneur
Tu vois, Igor, cet homme t'a posé une question, tu lui as donné la bonne réponse, et tu peux l'oublier. Mais danser sur la balance n'est pas bon. Pour la simple raison que l'équilibre peut être dans le ciel, et la situation réelle - il est temps d'économiser. Et nous voilà, hr-r-r-r-r-rating... ...et un gros lot en haut de l'ordre... et il est à terre... L'équité, aussi, même si elle est déjà déjà là... Je vous ai donc dit qu'il valait mieux miser sur l'équité plutôt que sur l'équilibre... :)
Pouvez-vous s'il vous plaît conseiller un débutant, est-il possible d'écrireun indicateur personnalisé dans MQL4 , de sorte qu'il puisse gérer simultanément toutes les paires de devises ? D'après ce que je comprends, le nombre maximal de lignes dans un graphique indicateur est de 8, mais je n'ai besoin que d'une seule ligne. C'est-à-dire que je peux obtenir un tableau de tableaux ou de variables pour toutes les paires de devises simultanément pour cette ligne ?
C'est-à-dire que je peux obtenir un tableau pour cette ligne traitée à partir de tableaux ou de variables sur toutes les paires de devises en même temps ?
Théoriquement, je ne vois pas d'obstacles. Une autre question est de savoir si vous pouvez traiter spécifiquement ce tableau.
Théoriquement, je ne vois pas d'obstacles. Une autre question est de savoir si vous serez en mesure de traiter ce tableau.
Comment puis-je traiter toutes les paires de devises dans le code du programme lorsque j'écris un outil ? J'ai regardé les exemples d'écriture d'un outil, il n'y a pas de référence à une paire de devises, celle qui est liée à un graphique de cotation spécifique est traitée par défaut.
Le problème est que maintenant Excel et VBA font tout, je reçois des informations sur 22 paires de devises par le serveur DDE et en utilisant le code VBA je veux dire le traitement simultané, mais ce n'est pas pratique, parce que d'abord je dois attendre 2 heures pour l'accumulation de l'historique des données pour effectuer l'analyse par les graphiques Excel. Et il n'est pas commode de passer d'un programme à l'autre, c'est pourquoi je réfléchis à la manière de tout transférer sur MT4.
Balance 600-1199 lot 0.1
Balance 1200-1799 lot 0.2
Balance 1800-2399 lot 0.3 etc.
Comment s'organiser dans l'EA ? Merci.
Balance 600-1199 lot 0.1
Balance 1200-1799 lot 0.2
Balance 1800-2399 lot 0.3 etc.
Comment s'organiser dans l'EA ? Merci.
appel : ticket=OrderSend(Symbol(),OP_BUY,Lot(),Ask,3,Bid-25*Point,Ask+25*Point, "Mon ordre #",magic,0,CLR_NONE) ;
Appel : ticket=OrderSend(Symbol(),OP_BUY,Lot(),Ask,3,Bid-25*Point,Ask+25*Point, "Mon ordre #",magic,0,CLR_NONE) ;
Dans le même temps, la balance peut être dans les nuages, et les actions peuvent connaître une forte baisse. Par conséquent, la taille du lot peut sembler plus grande qu'elle ne peut être ouverte et toute la structure dépassera...
Avant l'ouverture, il est préférable de corriger le lot pour qu'il soit vraiment possible.
J'ai créé une fonction à cet effet. Il a été légèrement corrigé par Viktor(Vinin) - essayez-le :
Dans la ligne.
... La marge libre est divisée par quatre et seul un quart des fonds libres est considéré comme éligible pour le trading.
Vous pouvez supprimer la division par 4 et mettre autant que vous voulez, même utiliser toute la marge.
Mais la fonction ne vous permettra pas d'utiliser une taille de lot supérieure à celle autorisée.
Dans le même temps, l'équilibre peut être dans les nuages, tandis que l'équité est dans la grande descente. Respectivement, la taille du lot peut sembler plus grande qu'elle ne peut être ouverte et toute la structure va dépasser...
Pourquoi tout est si triste...
le dernier return() de ma fonction donnera le lot minimum disponible pour l'instrument. Si le compte est un compte en cents avec un gros effet de levier, alors quand le solde est inférieur à 600, le conseiller expert peut négocier un peu plus longtemps :)
SZZY : le problème est spécifique et la branche est de donner une direction au questionneur.
pourquoi est-ce si triste...
le dernier return() de ma fonction donnera le lot minimum disponible pour l'instrument. Si le compte est un compte en cents avec un gros effet de levier, alors quand le solde est inférieur à 600, le conseiller expert peut négocier un peu plus longtemps :)
SZZY : Le problème est spécifique, et la branche pour donner une direction à l'auteur de la question.
Voici une fonction dans ma version :
Pourquoi est-ce si triste...
le dernier return() de ma fonction donnera le lot minimum disponible pour l'instrument. Si le compte est un compte en cents avec un gros effet de levier, alors quand le solde est inférieur à 600, le conseiller expert peut négocier un peu plus longtemps :)
SZZY : le problème est spécifique, et la branche pour donner une direction au questionneur
Tu vois, Igor, cet homme t'a posé une question, tu lui as donné la bonne réponse, et tu peux l'oublier. Mais danser sur la balance n'est pas bon. Pour la simple raison que l'équilibre peut être dans le ciel, et la situation réelle - il est temps d'économiser. Et nous voilà, hr-r-r-r-r-rating... ...et un gros lot en haut de l'ordre... et il est à terre... L'équité, aussi, même si elle est déjà
déjà là... Je vous ai donc dit qu'il valait mieux miser sur l'équité plutôt que sur l'équilibre... :)
Bonne journée !
Pouvez-vous s'il vous plaît conseiller un débutant, est-il possible d'écrireun indicateur personnalisé dans MQL4 , de sorte qu'il puisse gérer simultanément toutes les paires de devises ? D'après ce que je comprends, le nombre maximal de lignes dans un graphique indicateur est de 8, mais je n'ai besoin que d'une seule ligne. C'est-à-dire que je peux obtenir un tableau de tableaux ou de variables pour toutes les paires de devises simultanément pour cette ligne ?
Merci d'avance pour la réponse.
C'est-à-dire que je peux obtenir un tableau pour cette ligne traitée à partir de tableaux ou de variables sur toutes les paires de devises en même temps ?
Théoriquement, je ne vois pas d'obstacles. Une autre question est de savoir si vous pouvez traiter spécifiquement ce tableau.
Théoriquement, je ne vois pas d'obstacles. Une autre question est de savoir si vous serez en mesure de traiter ce tableau.
Comment puis-je traiter toutes les paires de devises dans le code du programme lorsque j'écris un outil ? J'ai regardé les exemples d'écriture d'un outil, il n'y a pas de référence à une paire de devises, celle qui est liée à un graphique de cotation spécifique est traitée par défaut.
Le problème est que maintenant Excel et VBA font tout, je reçois des informations sur 22 paires de devises par le serveur DDE et en utilisant le code VBA je veux dire le traitement simultané, mais ce n'est pas pratique, parce que d'abord je dois attendre 2 heures pour l'accumulation de l'historique des données pour effectuer l'analyse par les graphiques Excel. Et il n'est pas commode de passer d'un programme à l'autre, c'est pourquoi je réfléchis à la manière de tout transférer sur MT4.