[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 453

 
VOLDEMAR:

Vous savez pourquoi ?

Peut-être devrions-nous créer des manuels scolaires adéquats ?

Peut-être faire un enseignement adéquat ?

Peut-être écrire ces choses quelque part ?

Peut-être qu'alors les questions disparaîtront ?

Et vous n'aurez plus à répondre à 100500 questions stupides !

Si de telles questions se posent, ce n'est pas la faute de l'élève, c'est votre faute ! Vous ne l'avez décrit nulle part ! !!

Ce n'est pas écrit dans l'aide, il n'est pas écrit comment traduire de int en double.

Mais il est dit que si vous assignez le type double à int, la partie fractionnaire sera effacée,

Une personne normale conclurait logiquement que si int est assigné à double, seul un point avec un nombre donné de zéros sera ajouté...

Donc c'est comme ça ....

Vladimir, vous avez le droit d'exprimer toute cette hystérie au support technique du terminal que vous achetez. Et pendant que vous utilisez un terminal gratuit, vous pouvez remercier les enthousiastes qui ont trouvé la solution eux-mêmes et les fainéants comme vous qui ne veulent même pas prendre le temps de chercher du matériel sur le site web et qui répondent toujours à quelque chose pour la centième fois. Personne ne vous doit rien. Ils essaient de se débrouiller seuls. Si vous voulez qu'ils vous ennuient, engagez un instructeur et faites-lui tourner la tête. Il te donnera une tétine et un bavoir.

 
VOLDEMAR:

Vous savez pourquoi ?

Peut-être devrions-nous créer des manuels scolaires adéquats ?

Peut-être faire un enseignement adéquat ?

Peut-être écrire ces choses quelque part ?

Peut-être qu'alors les questions disparaîtront ?

Et vous n'aurez plus à répondre à 100500 questions stupides !

Si de telles questions se posent, ce n'est pas la faute de l'élève, c'est votre faute ! Vous ne l'avez décrit nulle part ! !!

Ce n'est pas écrit dans l'aide, il n'est pas écrit comment traduire de int en double.

Mais il est dit que si vous assignez le type double à int, la partie fractionnaire sera effacée,

Une personne normale conclurait logiquement que si int est assigné à double, seul un point avec un nombre donné de zéros sera ajouté...

Donc c'est comme ça ....

En fait, c'est dans le livre d'étude ! Il est même surligné !
 

Bonjour à tous. Je suis assez novice en matière de programmation. J'ai une question très simple.

J'ai besoin d'un EA qui ouvre une transaction lorsque les prix traversent la MA, pas sur la bougie suivante, mais au même moment sans attendre la fermeture de la bougie, la sortie n'est pas importante.

Merci d'avance

 
VOLDEMAR:

Vous savez pourquoi ?

Peut-être devrions-nous créer des manuels scolaires adéquats ?

Peut-être faire un enseignement adéquat ?

Peut-être écrire ces choses quelque part ?

Peut-être qu'alors les questions disparaîtront ?

Et vous n'aurez plus à répondre à 100500 questions stupides !

Si de telles questions se posent, ce n'est pas la faute de l'élève, c'est votre faute ! Vous ne l'avez décrit nulle part ! !!

Ce n'est pas écrit dans l'aide, il n'est pas écrit comment traduire de int en double.

Mais il est dit que si vous assignez le type double à int, la partie fractionnaire sera effacée,

Une personne normale conclurait logiquement que si int est assigné à double, seul un point avec un nombre donné de zéros sera ajouté...

Donc c'est comme ça ....

A qui parlez-vous maintenant ? Avec le modérateur public Sergeev, qui, avec d'autres enthousiastes, a créé et alimenté le fil de discussion "Navigateur de forum et réponses aux FAQ" spécifiquement pour ceux qui n'ont pas bien lu la documentation ?
Votre pathos semble mal placé dans ce contexte.
 
Activict:

Bonjour à tous. Je suis assez novice en matière de programmation. J'ai une question très simple.

J'ai besoin d'un EA qui ouvre une transaction lorsque les prix traversent la MA, pas sur la bougie suivante, mais au même moment sans attendre la fermeture de la bougie, la sortie n'est pas importante.

Merci d'avance

Ce n'est pas une question, c'est une déclaration. Quelle est la question ? En avance, s'il vous plaît.
 

Merci pour la rapidité, je suis au travail et ma tête est en ébullition à la fin du travail ;)) J'ai peu appris à écrire des Expert Advisors simples, mais maintenant j'ai une idée et j'ai besoin d'un fragment de code pour ouvrir une position quand les prix croisent la MA et ouvrir au moment du croisement, mais je l'ai seulement sur la bougie suivante. J'aimerais qu'ils me montrent un morceau de code, je crois qu'il ne faut qu'une ligne pour ceux qui savent bien

 
Activict:

...Je pense que c'est une affaire de 1 ligne pour ceux qui savent le faire.

...Ou un clic pour ceux qui savent qu'il y a une recherche.
Comment obtenir un signal pour l'intersection de deux MA ?
 
Activict:

Merci pour la rapidité, je suis au travail et ma tête est en ébullition à la fin du travail ;)) J'ai peu appris à écrire des Expert Advisors simples, mais maintenant j'ai une idée et j'ai besoin d'un fragment de code pour ouvrir une position quand les prix croisent la MA et ouvrir au moment du croisement, mais je l'ai seulement sur la bougie suivante. Je veux qu'ils me montrent un bout de code et qu'ils me montrent comment le faire. Je crois que cela ne devrait prendre qu'une ligne pour ceux qui savent bien faire.

Utilisez les prix de la barre 0 - Close[0], ma[0], Ask, Bid - numérotation des barres à partir de 0. La 0ème est la dernière barre non finie.

Il vaut mieux lire le forum : cette idée a été testée de nombreuses fois - vous obtiendrez beaucoup de faux signaux, il n'y a pas de poisson. Mais il est possible de s'entraîner.

 
ilunga:
exactement

J'ai modifié un peu le script :

//+------------------------------------------------------------------------------------------+
//|                                                                     ArraySetAsSeries.mq4 |
//+------------------------------------------------------------------------------------------+
//|                         script program start function                                    |
//+------------------------------------------------------------------------------------------+
//------------------------------------ НАЧАЛО START -------------------------------------- 1 -
int start()                                                              //функция start
  {                                                                      //начало start
   double Timestart=GetTickCount();                                      //переменная, с помощью которой вычисляется время (в милисекундах) начала выполнения скрипта
   double array1[][6];                                                   //объявляем массив-источник (массив, из к-о будут скопированы данные)
   double array2[][6];                                                   //объявляем массив-приемник (массив, куда будут скопированы данные), к-й на
                                                                         //момент объявления заполнен некоторыми данными
   int element_1=ArrayCopyRates(array1);                                 //копируем данные баров текущего графика в массив array1 
   int element_2=ArrayCopy(array2,array1,0,0,WHOLE_ARRAY);               //копируем данные всех баров в пользовательский массив
   bool element_3=ArrayGetAsSeries(array2);                              //проверка: является ли массив array1 массивом-таймсерией
   bool try_1=ArraySetAsSeries(array2,false);                            //устанавливаем НАПРАВЛЕНИЕ индексирования массива  
   bool element_4=ArrayGetAsSeries(array2);                              //проверка: является ли массив array2 массивом-таймсерией
   double element=array2[0][1];                                          //получаем значение цены открытия нулевого бара
//----------------------------------------------------------------------------------------- 2 -
   Comment("\nФункция ArrayCopyRates(array1) вернула: ",element_1,
           "\nФункция ArrayCopy(array2,array1,0,WHOLE_ARRAY) вернула: ",element_2,
           "\nФункция ArrayGetAsSeries(array2) вернула: ",element_3,
           "\nФункция ArraySetAsSeries(array2;false) вернула: ",try_1,
           "\nФункция ArrayGetAsSeries(array2) вернула: ",element_4,
           "\nЦена открытия нулевого бара (т.е. бара с ИНДЕКСОМ 0) равна: ",element,
           "\nСкрипт выполнялся всего ",GetTickCount()-Timestart," миллисекунд, из них: ",
           MathFloor((GetTickCount()-Timestart)/1000)," секунд ",((GetTickCount()-Timestart)/1000-MathFloor((GetTickCount()-Timestart)/1000))*1000,
           " миллисекунд");//печать сообщения на экран
//----------------------------------------------------------------------------------------- 3 -
   return(0);                                                             //выход из start
  }                                                                       //конец start
//-------------------------------------- КОНЕЦ START -------------------------------------- 4 -

Le résultat est le suivant :


Une question s'est naturellement posée : Dans ce cas, j'ai copié les données des barres du graphique actuel dans un tableau bidimensionnel array1 en utilisant la fonction ArrayCopyRates(array1). Puis dans la ligne suivante avec la fonction ArrayCopy(array2,array1,0,0,WHOLE_ARRAY) j'ai copié les données de array1 dans array2. Ensuite, en utilisant la fonction ArrayGetAsSeries, j'ai vérifié si array2 est un array-timeseries. Et il s'est avéré (comme vous pouvez le voir sur la capture d'écran), que le tableau est un tableau de séries temporelles, même si je ne l'avais pas "traité" avec la fonction ArraySetAsSeries auparavant.

Question: pourquoi dans le premier cas (question précédente) j'ai dû utiliser la fonction ArraySetAsSeries (pour que mon tableau soit organisé comme un tableau de séries temporelles), alors que dans ce cas je n'ai pas besoin d'un tel traitement.

P.S. Désolé d'insister, je veux juste bien comprendre, afin de ne pas laisser de "trous dans l'histoire". Merci pour toutes les réponses précédentes.

 
VladislavVG:

Vladimir, vous aurez le droit d'exprimer toute cette hystérie au support technique du terminal que vous achetez. Et pendant que vous en utilisez un gratuitement, remerciez les enthousiastes qui ont trouvé la solution eux-mêmes et les paresseux comme vous qui ne veulent même pas passer du temps à chercher du matériel sur le site web et à répondre pour la centième fois à une question. Personne ne vous doit rien. Ils essaient de se débrouiller seuls. Si tu veux qu'ils t'ennuient, engage un instructeur et fais-lui tourner la tête. Il vous donnera une tétine et un bavoir.

Vladislav, avec tout le respect que je vous dois : si vous ne voulez pas répondre, ne répondez pas, si vous voulez répondre, alors répondez en substance,

Vous devez suivre un cours sur la communication ou des leçons de psychologie, carles réponses sont"Lisez la documentation 3 fois par jour pendant 4-5 heures. Et seulement après, sautez avec un tambourin."ce que tu dis souvent...

"que vous me donnez beaucoup. Merci de votre aide en tout cas ....