changez fermé en ouvert. S'il commence à compter par ouvert, alors creusez dans cette direction comment changer cette valeur. Je ne peux pas lancer le terminal beta maintenant pour regarder dans son éditeur.
Changez la valeur ici au préalable :
//--- counting from 0 to rates_totalArraySetAsSeries(ExtLineBuffer,false);
ArraySetAsSeries(close,false);
//--- first calculation or number of bars was changed
Il ne sert à rien de changer Close en Open, il y aura peu de changement. Il est plus facile de ne pas s'embêter avec de telles absurdités, mais de prendre les données de la barre formée.
J'ai écrit un EA, mais il ne fonctionne pas du tout)))) ou il ne fonctionne pas correctement. J'ai bricolé, corrigé beaucoup de choses, mais néanmoins, l'EA ne fonctionne pas.
Voici un fragment du calcul des décisions de trading basées sur l'indicateur RSI :
int Ticket1_RSI=-1, Ticket2_RSI=-1; // Номера открытых ордеровexterndouble Lot=0.01; // Объем лотаint RSI() // Функция RSI
{
double T, P;
double RSI_0, RSI_1, RSI_2; // Значения индикатора RSI//------------------Значения индикатора---------------------------------------
RSI_0=iRSI(Symbol(), 0, 14, PRICE_CLOSE, 0); // Получаем данные от RSI
RSI_1=iRSI(Symbol(), 0, 14, PRICE_CLOSE, 1); // Получаем данные от RSI
RSI_2=iRSI(Symbol(), 0, 14, PRICE_CLOSE, 2); // Получаем данные от RSI //------------------Условие на продажу--------------------------------- if (RSI_1 > RSI_0 > 70 && RSI_1 > RSI_2) // Если индикатор превышает значение 70 и виден поворот вниз
{
if (Ticket2_RSI > 0) // Если имеется ордер на покупку
OrderClose(Ticket2_RSI, OrderLots(), Bid, 0, 0); // Закрытие ордера на покупкуif (Ticket1_RSI <= 0) // Если ордера на продажу нет
{
Ticket1_RSI=OrderSend(Symbol(), OP_SELL, Lot, Bid, 2, 0, 0); // Открытие ордера на продажуif (OrderSelect(Ticket1_RSI, SELECT_BY_TICKET)==true)
{
T=OrderOpenTime();
P=OrderOpenPrice();
ObjectCreate("Arrow", 22, 0, T, P); // Создание индикатора ордера
ObjectSet("Arrow", OBJPROP_COLOR, IndianRed); // Изменение цвета в мутно-красноватый
ObjectSet("Arrow", OBJPROP_ARROWCODE, 242); // Направление стрелки внизObjectCreate("Text", 21, 0, T, P); // Создание текстового объекта
ObjectSetText("Text", "Open sell-order by RSI", 6, "Times New Roman", Navy); // Текст, шрифт, стиль, цвет
}
}
}
//-------------------Условие на покупку-------------------------------- if (RSI_1 < RSI_0 < 30 && RSI_1 < RSI_2) // Если индикатор ниже значения 30 и виден поворот вверх
{
if (Ticket1_RSI > 0) // Если имеется ордер на продажу
OrderClose(Ticket1_RSI, OrderLots(), Ask, 0, 0); // Закрытие ордера на продажуif (Ticket2_RSI <= 0) // Если ордера на продажу нет
{
Ticket2_RSI=OrderSend(Symbol(), OP_BUY, Lot, Ask, 2, 0, 0); // Открытие ордера на покупкуif (OrderSelect(Ticket2_RSI, SELECT_BY_TICKET)==true)
{
T=OrderOpenTime();
P=OrderOpenPrice();
ObjectCreate("Arrow", 22, 0, T, P); // Создание индикатора ордера
ObjectSet("Arrow", OBJPROP_COLOR, LawnGreen); // Изменение цвета в ярко-зеленый
ObjectSet("Arrow", OBJPROP_ARROWCODE, 241); // Направление стрелки вверхObjectCreate("Text", 21, 0, T, P); // Создание текстового объекта
ObjectSetText("Text", "Open buy-order by RSI", 6, "Times New Roman", Navy); // Текст, шрифт, стиль, цвет
}
}
}
//-------------------------------------------------------------------- return;
}
Le problème est que l'EA ouvre immédiatement un ordre d'achat, malgré la valeur de l'indicateur, et ne veut pas le fermer. Les objets tels que le texte et les flèches n'apparaissent pas.
Aidez-moi à résoudre ce problème)) Je suis novice en la matière.
J'ai écrit un EA, mais il ne fonctionne pas du tout)))) ou il ne fonctionne pas correctement. J'ai farfouillé, corrigé beaucoup de choses, mais néanmoins, l'EA ne fonctionne pas.
Voici un fragment du calcul des décisions de trading basées sur l'indicateur RSI :
Le problème est que l'EA ouvre immédiatement un ordre d'achat, malgré la valeur de l'indicateur, et ne veut pas le fermer. Les objets tels que le texte et les flèches n'apparaissent pas.
Aidez-moi à résoudre ce problème)) Je suis novice en la matière.
if (RSI_1 > RSI_0 && RSI_0 > 70 && RSI_1 > RSI_2) // Если индикатор превышает значение 70 и виден поворот вниз
Vous devez donc écrire chaque inégalité séparément dans les conditions ? Si vous généralisez d'une manière ou d'une autre, cela sera considéré comme une erreur ? Alors pourquoi le programme dit qu'il n'y a pas d'erreurs lors de la compilation ?
Il faut donc écrire chaque inégalité séparément dans les conditions ? Si on généralise d'une manière ou d'une autre, cela sera perçu comme une erreur ? Alors pourquoi le programme dit qu'il n'y a pas d'erreur à la compilation ?
Il n'y a pas d'erreur, vous n'obtenez simplement pas le résultat escompté.
...Comment chercher une cause dans une situation comme celle-ci ?
Je suis tombée dessus par hasard. Vous devez simplifier les choses. Commentez tout, décommentez la première importation, compilez, appelez les fonctions, etc.
Integer: Il ne sert à rien de changer Close en Open, il y aura peu de changement. Il est plus facile de ne pas s'embêter avec de telles absurdités, mais de prendre les données de la barre formée.
Je suis d'accord, mais comme il y avait une question...
Il n'y a pas d'erreur, vous n'obtenez simplement pas le résultat que vous attendiez.
J'ai compris)) un ordre a été ouvert immédiatement sans autre modification, car j'ai dû écrire NULL au lieu de Symbol() dans la ligne :
RSI_1=iRSI(Symbol(), 0, 14, PRICE_CLOSE, 1); // Получаем данные от RSI
Vous devez écrire NULL au lieu de Symbol(), car il y a une différence dans les types de variables. À cause de cela, j'ai vu le RSI comme une valeur nulle, donc je l'ai immédiatement ouvert, car la condition a fonctionné.
Je l'ai maintenant corrigé et tout va bien.
Le seul problème est que les objets ne sont créés qu'une seule fois lors de la première transaction.
Vous devez ajouter au code dans cette situation. Créez une variable externe, par exemple Appled_Price.
Et vous changez tous les PRICE_CLOSE dans le code en Appled_Price.
Ah, oui, désolé, je voulais dire les nouvelles constructions, et il y a un code un peu inhabituel.
C'est le problème, le code n'a pas de prix libre, tout est dans des tableaux, vous ne pouvez pas le changer, j'ai essayé ((((
Et si cela fonctionnait, comment faire une sélection dans une liste déroulante (comme dans l'image de ma question) ?
C'est le problème, il n'y a pas de prix libre dans le code, vous ne pouvez pas simplement le remplacer(((
Essayez ici
changez fermé en ouvert. S'il commence à compter par ouvert, alors creusez dans cette direction comment changer cette valeur. Je ne peux pas lancer le terminal beta maintenant pour regarder dans son éditeur.
Changez la valeur ici au préalable :
Salutations à tous))
J'ai écrit un EA, mais il ne fonctionne pas du tout)))) ou il ne fonctionne pas correctement. J'ai bricolé, corrigé beaucoup de choses, mais néanmoins, l'EA ne fonctionne pas.
Voici un fragment du calcul des décisions de trading basées sur l'indicateur RSI :
//--------------------Данные------------------------------------
Le problème est que l'EA ouvre immédiatement un ordre d'achat, malgré la valeur de l'indicateur, et ne veut pas le fermer. Les objets tels que le texte et les flèches n'apparaissent pas.
Aidez-moi à résoudre ce problème)) Je suis novice en la matière.
Salutations à tous))
J'ai écrit un EA, mais il ne fonctionne pas du tout)))) ou il ne fonctionne pas correctement. J'ai farfouillé, corrigé beaucoup de choses, mais néanmoins, l'EA ne fonctionne pas.
Voici un fragment du calcul des décisions de trading basées sur l'indicateur RSI :
//--------------------Данные------------------------------------
Le problème est que l'EA ouvre immédiatement un ordre d'achat, malgré la valeur de l'indicateur, et ne veut pas le fermer. Les objets tels que le texte et les flèches n'apparaissent pas.
Aidez-moi à résoudre ce problème)) Je suis novice en la matière.
Vous devez donc écrire chaque inégalité séparément dans les conditions ? Si vous généralisez d'une manière ou d'une autre, cela sera considéré comme une erreur ? Alors pourquoi le programme dit qu'il n'y a pas d'erreurs lors de la compilation ?
Il faut donc écrire chaque inégalité séparément dans les conditions ? Si on généralise d'une manière ou d'une autre, cela sera perçu comme une erreur ? Alors pourquoi le programme dit qu'il n'y a pas d'erreur à la compilation ?
Il n'y a pas d'erreur, vous n'obtenez simplement pas le résultat escompté.
...Comment chercher une cause dans une situation comme celle-ci ?
Je suis tombée dessus par hasard. Vous devez simplifier les choses. Commentez tout, décommentez la première importation, compilez, appelez les fonctions, etc.
Il ne sert à rien de changer Close en Open, il y aura peu de changement. Il est plus facile de ne pas s'embêter avec de telles absurdités, mais de prendre les données de la barre formée.
Il n'y a pas d'erreur, vous n'obtenez simplement pas le résultat que vous attendiez.
J'ai compris)) un ordre a été ouvert immédiatement sans autre modification, car j'ai dû écrire NULL au lieu de Symbol() dans la ligne :
Vous devez écrire NULL au lieu de Symbol(), car il y a une différence dans les types de variables. À cause de cela, j'ai vu le RSI comme une valeur nulle, donc je l'ai immédiatement ouvert, car la condition a fonctionné.
Je l'ai maintenant corrigé et tout va bien.
Le seul problème est que les objets ne sont créés qu'une seule fois lors de la première transaction.