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

 

Bonjour à tous !


Ma question est celle d'un débutant.

J'ai un indicateur qui affiche des données provenant de fichiers externes sur un graphique. Voici mes questions :

1. Comment ouvrir la boîte de dialogue standard de sélection de fichiers?

2. Comment contourner la restriction sur les dossiers à partir desquels les fichiers du code peuvent être ouverts (experts/files) ?

3. Comment faire un contrôle sur le graphique qui peut être cliqué pour désactiver le script. La question principale est de savoir comment faire un EA, par exemple une sorte de bouton ou autre chose pour interagir avec l'utilisateur à travers lui) ?


Merci !

 

Expliquez à l'intello quelle est l'erreur !

Je réalise un script simple sur Finam demo pour afficher le prix Alert(BId) ;

Tout fonctionne, mais pour une raison quelconque le prix est affiché avec 4 décimales, bien que les cotations soient en 5 décimales pour EURUSD. L'IMA est également calculé avec 4 décimales et non 5.

Ce que je fais mal, s'il vous plaît conseillez ????

 
Onesto:

Expliquez à l'intello quelle est l'erreur !

Je réalise un script simple sur Finam demo pour afficher le prix Alert(BId) ;

Tout fonctionne, mais pour une raison quelconque le prix est affiché avec 4 décimales, bien que les cotations soient en 5 décimales pour EURUSD. L'IMA est également calculé avec 4 décimales et non 5.

S'il vous plaît, dites-moi ce que je fais de mal ? ???

Vous faites tout correctement, mais le terminal imprime 4 décimales, convertissez le double en chaîne avant d'imprimer avec le nombre correct de décimales.

Alert(DoubleToStr(Bid,Digits)) ;

 
sanderz:

Bonjour à tous !


Ma question est celle d'un débutant.

J'ai un indicateur qui affiche des données provenant de fichiers externes sur un graphique. Voici mes questions :

1. Comment ouvrir la boîte de dialogue standard de sélection de fichiers ?

2. Comment contourner la restriction sur les dossiers à partir desquels les fichiers du code peuvent être ouverts (experts/files) ?

3. Comment faire un contrôle sur le graphique qui peut être cliqué pour désactiver le script. La question principale est de savoir comment faire un EA, par exemple une sorte de bouton ou autre chose pour interagir avec l'utilisateur à travers lui) ?


Merci !

1-2.Standard c'est quoi ? Quoi qu'il en soit, pour les deux premières questions, vous devrez utiliser WinAPI et/ou une DLL externe.

3. Directement à partir du script pour faire un élément graphique dans la boucle pour suivre ses coordonnées et lorsque vous le faites glisser, le script se met en pause ou se décharge.

La façon la plus simple de le faire est de regarder le code source, il y a beaucoup d'astuces visuelles dans la base de code.

 
Chers membres du forum, pouvez-vous m' aider à sortir un tableau de toutes les transactions de QuickBooks vers excel afin qu'il soit mis à jour en ligne et que je puisse modifier le nombre de lignes affichées. J'ai essayé mais le tableau entier est affiché et non mis à jour.
 
splxgf:

1-2. Lequel est le standard ? Mais dans tous les cas, les deux premières questions nécessiteront WinAPI et/ou une DLL externe.

3. Directement à partir du script pour faire un élément graphique dans la boucle pour suivre ses coordonnées et lorsque vous le faites glisser, le script se met en pause ou se décharge.

La façon la plus simple de le faire est de regarder le code source, il y a beaucoup d'astuces visuelles dans la base de code.

Merci.
 
splxgf:

Vous faites tout correctement, mais le terminal sort 4 décimales, convertissez le double en une chaîne de caractères avant de le sortir avec le bon nombre de chiffres.

Alert(DoubleToStr(Bid,Digits)) ;


Merci, je comprends maintenant.

Et lorsque l'on calcule dans le corps du conseiller expert, les données comportent-elles 5 ou 4 chiffres ?

 
Onesto:


Merci, maintenant je comprends.

Et lors du calcul dans le corps de l'EA, les données vont-elles avec 5 ou avec 4 ?

Les calculs sont effectués avec le nombre normal de chiffres, ce qui peut être vérifié avec Alert(Bid*100000) ;
 

Ma chère, j'ai encore une question :

double hc=(iHigh(NULL,0,1)-iClose(NULL,0,1)) ;
double cl=(iClose(NULL,0,1)-iLow(NULL,0,1)) ;

si((iClose(NULL,0,1)<iOpen(NULL,0,1))&&(hc>cl))

pre12=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,Ask+100*Point,"",0,0,CLR_NONE) ;


Il y a un problème : les positions sont ouvertes 17 à 40 fois toutes les 1 minute, bien que je les teste sur des graphiques de 15 minutes. Et l'ordre est censé ne pas s'ouvrir plus d'une fois toutes les 15 minutes. Ce n'est qu'alors que la condition selon laquelle la clôture de la bougie précédente est inférieure à son ouverture est remplie.

Pourquoi en est-il ainsi ?

 
NaVolne:

Ma chère, j'ai encore une question :

if((iClose(NULL,15,1)<iOpen(NULL,15,1))&&(hc>cl))

pre12=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,Ask+100*Point,"",0,0,CLR_NONE) ;


Il y a un problème : les positions sont ouvertes 17 à 40 fois toutes les 1 minute, bien que je les teste sur des graphiques de 15 minutes. Et je suppose qu'un ordre ne doit pas s'ouvrir plus d'une fois toutes les 15 minutes. Ce n'est qu'alors que la condition selon laquelle la clôture de la bougie précédente est inférieure à son ouverture est remplie.

Pourquoi en est-il ainsi ?


Je suppose que l'ordre doit être ouvert une fois toutes les 15 minutes, au début de

dans la zone de déclaration des variables

double OpenBar=0; 

 

int start()
   {
    //Проверка на начало нового бара
    double CurOpenBar=iOpen(NULL,PERIOD_M15,0);  
    if (OpenBar==CurOpenBar) {return;} else {OpenBar=CurOpenBar;}
    //ваш код
   }


quelque chose comme ça...

Mais votre condition est remplie à chaque tick, donc l'ordre s'ouvre à chaque tick...