Qu'est-ce que cela signifie SANS DoubleToStr(YourPrice,5) ? J'ai DoubleToStr(YourPrice,5) nulle part.
Si vous mettez simplement une variable double quelque part dans Print ou Alert (Print(doubleVariable)), seules quatre décimales seront imprimées ; si vous mettez Print(DoubleToStr(doubleVariable,N)) - vous obtiendrez N décimales.
Question aux modérateurs - très souvent le site me renvoie pour une nouvelle autorisation. Lorsque j'essaie de me connecter, le message "Votre accès est temporairement limité ou refusé" s'affiche. Puis, après quelques heures, l'accès est rétabli. Quel pourrait être le problème ?
yosuf: Question aux modérateurs - très souvent le site me renvoie pour une nouvelle autorisation. Lorsque j'essaie de me connecter, le message "Votre accès est temporairement limité ou refusé" s'affiche. Puis, après quelques heures, l'accès est rétabli. Quel pourrait être le problème ?
L'univers homéostatique. Les modérateurs ne peuvent pas modifier l'autorisation. Seulement l'interdire de façon permanente.
yosuf: Question aux modérateurs - très souvent le site me renvoie pour une nouvelle autorisation. Lorsque j'essaie de me connecter, le message "Votre accès est temporairement limité ou refusé" s'affiche. Puis, après quelques heures, l'accès est rétabli. Quel pourrait être le problème ?
Vous êtes victime d'un troll)))) Vous êtes un individu charismatique))))
Pouvez-vous me dire comment prendre en compte un croisement de prix avec une ligne indicatrice?
l'indicateur comporte trois lignes : inférieure, centrale et supérieure.
Voici un exemple :
lorsque le prix franchit la ligne supérieure, je dois fixer ce moment et l'utiliser par la suite, lorsque le prix est en dessous de la ligne supérieure et au-dessus de la ligne médiane, et lorsque le prix est en dessous de la ligne médiane, je dois réinitialiser le résultat fixé. Je n'ai pas besoin de me souvenir du prix auquel le croisement s'est produit, il me suffit de cocher la case pour indiquer que le croisement s'est produit, puis de l'effacer.
LineUp //верхняя линия
LineS // средняя линия
LineDown // нижняя линия
Ask > LineUp // фиксируем
Ask < LineS // сбрасываем
и так же с нижней линией
Bid < LineDown // фиксируем
Bid > LineS // сбрасываем
J'ai essayé avec True et false, cela n'a pas fonctionné, je ne comprends pas pourquoi.
J'ai essayé ça :
double LineUp; //верхняя линия индикатораdouble LineS; // средняя линия индикатораdouble LineDown; // нижняя линия индикатораbool FiksiruemUp = False;
bool FiksiruemDown = False;
if ( Ask > LineUp) FiksiruemUp = True; // фиксируемif (Ask < LineS) FiksiruemUp = False; // сбрасываем
// и так же с нижней линией
if (Bid < LineDown) FiksiruemDown = True; // фиксируемif (Bid > LineS) FiksiruemDown = False; // сбрасываем
// дальше в коде я к нему обращаюсь:
if ( FiksiruemUp == True)
{
то нужно сделать это . . . . . .
}
et ça ne marche pas. Pourquoi pas ? Aidez-moi à comprendre.
Chers utilisateurs du forum, s'il vous plaît aider, je ne peux pas trouver un bug dans le code de mon EA, à savoir, il ne peut pas ou ne veut pas fermer les positions par l'indicateur, seulement par tp ou sl, ici, comme il me semble, une partie du code, qui est associé à ce problème, beaucoup de merci à l'avance
int start()
{
int
Total, // Количество ордеров в окне
Tip, // Тип выбран. ордера (B=0,S=1)
Ticket; // Номер ордераdouble
FT1, // Значение 0 буффера Forex Trend
FT2, // Значение 1 буффера Forex Trend
TL1, // Значение 1 буффера Trend Lord
TL2, // Значение 0 буффера Trend Lord
FI, // Значен. Force Index текущее
Lot, // Колич. лотов в выбран.ордере
Lts, // Колич. лотов в открыв.ордере
Min_Lot, // Минимальное количество лотов
Step, // Шаг изменения размера лота
Free, // Текущие свободные средства
One_Lot, // Стоимость одного лота
Price, // Цена выбранного ордера
SL, // SL выбранного ордера
TP; // TP выбранного ордераbool
Ans =false, // Ответ сервера после закрытия
Cls_B=false, // Критерий для закрытия Buy
Cls_S=false, // Критерий для закрытия Sell
Opn_B=false, // Критерий для открытия Buy
Opn_S=false; // Критерий для открытия Sell//--------------------------------------------------------------- 3 --// Предварит.обработкаif(Bars < Period_FI) // Недостаточно баров
{
Alert("Недостаточно баров в окне. Эксперт не работает.");
return; // Выход из start()
}
if(Work==false) // Критическая ошибка
{
Alert("Критическая ошибка. Эксперт не работает.");
return; // Выход из start()
}
//--------------------------------------------------------------- 4 --// Учёт ордеров
Symb=Symbol(); // Название фин.инстр.
Total=0; // Количество ордеровfor(int i=1; i<=OrdersTotal(); i++) // Цикл перебора ордер
{
if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий
{ // Анализ ордеров:if (OrderSymbol()!=Symb)continue; // Не наш фин. инструмif (OrderType()>1) // Попался отложенный
{
Alert("Обнаружен отложенный ордер. Эксперт не работает.");
return; // Выход из start()
}
Total++; // Счётчик рыночн. ордif (Total>1) // Не более одного орд
{
Alert("Несколько рыночных ордеров. Эксперт не работает.");
return; // Выход из start()
}
Ticket=OrderTicket(); // Номер выбранн. орд.
Tip =OrderType(); // Тип выбранного орд.
Price =OrderOpenPrice(); // Цена выбранн. орд.
SL =OrderStopLoss(); // SL выбранного орд.
TP =OrderTakeProfit(); // TP выбранного орд.
Lot =OrderLots(); // Количество лотов
}
}
//--------------------------------------------------------------- 5 --// Торговые критерии
TL1=iCustom(NULL, 0, "TrendLord", 1, 1); // trend lord синий
TL2=iCustom(NULL, 0, "TrendLord", 0, 1); // красный тренд лорд
FI=iForce(NULL, 0, Period_FI,MODE_EMA,PRICE_CLOSE,0); // FI
FT1=iCustom(NULL, 0, "ForexTrend", 7, 50.6, 999999, 0, 1); // forex trend blue
FT2=iCustom(NULL, 0, "ForexTrend", 7, 50.6, 999999, 1, 1); // forex trend redif (TL2 == EMPTY_VALUE && FT1 == 1 && FT2 == 0 && FI > 0)
{
Opn_B = true;
}
while (Opn_B == true)
{
if (FI <= 0)
{
Cls_B=true;
}
break;
}
if (TL1 == EMPTY_VALUE && FT2 == 1 && FT1 == 0 && FI < 0)
{
Opn_S = true;
}
while (Opn_S == true)
{
if (FI >= 0)
{
Cls_S=true;
}
break;
}
//--------------------------------------------------------------- 6 --// Закрытие ордеровwhile(true) // Цикл закрытия орд.
{
if (Tip==OP_BUY && Cls_B==true) // Открыт ордер Buy..
{ //и есть критерий закрAlert("Попытка закрыть Buy ",Ticket,". Ожидание ответа..");
RefreshRates(); // Обновление данных
Ans=OrderClose(Ticket,Lot,Bid,2); // Закрытие Buyif (Ans==true) // Получилось :)
{
Alert ("Закрыт ордер Buy ",Ticket);
break; // Выход из цикла закр
}
if (Fun_Error(GetLastError())==1) // Обработка ошибокcontinue; // Повторная попыткаreturn; // Выход из start()
}
if (Tip==OP_SELL && Cls_S==true) // Открыт ордер Sell..
{ // и есть критерий закрAlert("Попытка закрыть Sell ",Ticket,". Ожидание ответа..");
RefreshRates(); // Обновление данных
Ans=OrderClose(Ticket,Lot,Ask,2); // Закрытие Sellif (Ans==true) // Получилось :)
{
Alert ("Закрыт ордер Sell ",Ticket);
break; // Выход из цикла закр
}
if (Fun_Error(GetLastError())==1) // Обработка ошибокcontinue; // Повторная попыткаreturn; // Выход из start()
}
break; // Выход из while
Pouvez-vous me dire comment prendre en compte un croisement de prix avec une ligne indicatrice ?
l'indicateur comporte trois lignes : inférieure, centrale et supérieure.
Voici un exemple :
lorsque le prix franchit la ligne supérieure, je dois fixer ce moment et l'utiliser par la suite, lorsque le prix est en dessous de la ligne supérieure et au-dessus de la ligne médiane, et lorsque le prix est en dessous de la ligne médiane, je dois réinitialiser le résultat fixé. Je n'ai pas besoin de me souvenir du prix auquel le croisement s'est produit, il me suffit de cocher la case pour indiquer que le croisement s'est produit, puis de l'effacer.
J'ai essayé avec True et false, cela n'a pas fonctionné, je ne comprends pas pourquoi.
J'ai essayé ça :
et ça ne marche pas. Pourquoi pas ? Aidez-moi à comprendre.
Cela ne fonctionne pas, car vous devez amener les variables que vous voulez engager au niveau global, c'est-à-dire avant la fonction Start... Par exemple, ceux-ci et ainsi de suite.... " FiksiruemUp = True ; // commit " et "iksiruemUp = False ; // reset " Si vous ne passez pas d'une période à l'autre, cela devrait fonctionner...
Le DC est à cinq chiffres...
Qu'est-ce que cela signifie SANS DoubleToStr(YourPrice,5) ? J'ai DoubleToStr(YourPrice,5) nulle part.
Question aux modérateurs - très souvent le site me renvoie pour une nouvelle autorisation. Lorsque j'essaie de me connecter, le message "Votre accès est temporairement limité ou refusé" s'affiche. Puis, après quelques heures, l'accès est rétabli. Quel pourrait être le problème ?
L'univers homéostatique. Les modérateurs ne peuvent pas modifier l'autorisation. Seulement banni définitivement.
Que faire maintenant ? Vers qui se tourner ?
Question aux modérateurs - très souvent le site me renvoie pour une nouvelle autorisation. Lorsque j'essaie de me connecter, le message "Votre accès est temporairement limité ou refusé" s'affiche. Puis, après quelques heures, l'accès est rétabli. Quel pourrait être le problème ?
Vous êtes victime d'un troll)))) Vous êtes un individu charismatique))))
Salutations.
Pouvez-vous me dire comment prendre en compte un croisement de prix avec une ligne indicatrice?
l'indicateur comporte trois lignes : inférieure, centrale et supérieure.
Voici un exemple :
lorsque le prix franchit la ligne supérieure, je dois fixer ce moment et l'utiliser par la suite, lorsque le prix est en dessous de la ligne supérieure et au-dessus de la ligne médiane, et lorsque le prix est en dessous de la ligne médiane, je dois réinitialiser le résultat fixé. Je n'ai pas besoin de me souvenir du prix auquel le croisement s'est produit, il me suffit de cocher la case pour indiquer que le croisement s'est produit, puis de l'effacer.
J'ai essayé avec True et false, cela n'a pas fonctionné, je ne comprends pas pourquoi.
J'ai essayé ça :
et ça ne marche pas. Pourquoi pas ? Aidez-moi à comprendre.
Salutations.
Pouvez-vous me dire comment prendre en compte un croisement de prix avec une ligne indicatrice ?
l'indicateur comporte trois lignes : inférieure, centrale et supérieure.
Voici un exemple :
lorsque le prix franchit la ligne supérieure, je dois fixer ce moment et l'utiliser par la suite, lorsque le prix est en dessous de la ligne supérieure et au-dessus de la ligne médiane, et lorsque le prix est en dessous de la ligne médiane, je dois réinitialiser le résultat fixé. Je n'ai pas besoin de me souvenir du prix auquel le croisement s'est produit, il me suffit de cocher la case pour indiquer que le croisement s'est produit, puis de l'effacer.
J'ai essayé avec True et false, cela n'a pas fonctionné, je ne comprends pas pourquoi.
J'ai essayé ça :
et ça ne marche pas. Pourquoi pas ? Aidez-moi à comprendre.
Cela ne fonctionne pas, car vous devez amener les variables que vous voulez engager au niveau global, c'est-à-dire avant la fonction Start... Par exemple, ceux-ci et ainsi de suite.... " FiksiruemUp = True ; // commit " et "iksiruemUp = False ; // reset "
Si vous ne passez pas d'une période à l'autre, cela devrait fonctionner...