[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 336

 
snowman647 писал(а) >>
suggérer si quelqu'un a vu un conseiller qui négocie juste par rendu - toute implémentation... (il est censé s'écouler lentement au détriment de la pâte à tartiner)

Vérifiez cette option. http://vinin.ucoz.ru/forum/10-38-1

Dernier message

 

Citoyens, qui avez connecté MT4 à Matlab via DDE, pouvez-vous me dire pourquoi la connexion n'est pas initialisée ?

J'écris channel = ddeinit('MT4','BID') ;

en réponse - canal = 0

Metatrader est en cours d'exécution.

 

Bon après-midi.

Pouvez-vous me dire, s'il vous plaît.

Que dois-je changer dans l'indicateur MA pour que la ligne soit tracée de l'autre côté du prix ? Par exemple, si le prix baisse, la ligne de l'indicateur est tracée à droite et s'il monte, elle est tracée à gauche.

Comment faire le contraire ?

 
smogsam писал(а) >>

Bon après-midi.

Pouvez-vous me dire, s'il vous plaît.

Que dois-je changer dans l'indicateur MA pour que la ligne soit tracée de l'autre côté du prix ? Par exemple, si le prix baisse, la ligne de l'indicateur est tracée à droite et s'il monte, elle est tracée à gauche.

Comment faire l'inverse ?

Il est probablement nécessaire de décaler l'indicateur d'une période vers le passé, mais l'ampleur du décalage dépend de la période de décalage de l'indicateur. La SMA a une demi-période.

Ainsi, en déplaçant la SMA pour une période en arrière, il sera possible de voir sur l'historique ce que vous voulez.

 
Chemist >> :

Citoyens, qui avez connecté MT4 à Matlab via DDE, pouvez-vous me dire pourquoi la connexion n'est pas initialisée ?

J'écris channel = ddeinit('MT4','BID') ;

en réponse - canal = 0

metatrader est en cours d'exécution.

Avez-vous activé Service-Settings-Server-Enable DEE Server ?

Vous devriez.

 
Urain >> :

Avez-vous activé Service-Settings-Server-Enable DEE Server ?

Ou bien il devrait l'être.


Voilà, ce problème est résolu. Le canal a pris la bonne valeur. Maintenant, j'essaie de récupérer les données.

rc = ddeadv(channel, 'EURUSD', 'disp(x)', 'x',[1 1]) ; - essaie de sortir la valeur du tick entrant sur la console,

mais cela ne fonctionne pas, même si rc=1. Qu'est-ce qui ne va pas, pouvez-vous me le dire ?

 


Bonjour. Je me débats avec le code d'un indicateur personnalisé, basé sur la théorie de DeMark. L'essence de l'indicateur - le chemin parcouru par le prix (Close[i]-Open[i])/(High[i]-Low[i]) par unité de temps, par exemple un jour, est multiplié par le volume de la même période. Si le prix augmente, la valeur de cette valeur multipliée par le volume est ajoutée à la valeur précédente. Si le prix baisse, la valeur de ce jour est soustraite de la valeur du jour précédent. En d'autres termes, les valeurs positives sont ajoutées à la valeur du jour précédent et les valeurs négatives sont soustraites de la valeur du jour précédent. Le rapport entre les valeurs positives et négatives d'une période est la valeur en pourcentage de la pression acheteur/vendeur, en d'autres termes, l'accumulation/distribution d'un titre.

Je ne donne que le code de la fonction spéciale de démarrage, car il n'y a pas de problème d'initialisation des variables. Lorsque j'exécute le code, à zéro itération, la courbe de l'indicateur "va" au plafond/à la moitié de la fenêtre de l'indicateur.

Qu'est-ce que je fais de mal ? Comment faire ? Merci pour votre aide.


int start()
{
int i,j,nCountedBars ;
double V,X,Y,Z ;

if(Bars<=Fi) return(0) ;

nCountedBars=IndicatorCounted() ;
//----
i=Bars-Fi-1 ;
if(nCountedBars>Fi)
i=Bars-nCountedBars-1 ;
while(i>=0)
{
V=(Close[i]-Open[i])/(High[i]-Low[i]) ;
if(V>0)
X+=V*Volume[i] ;
else
Y+=V*Volume[i] ;



Alert("V=",V," X=",X," Y=",Y," i=",i) ;


ExtDMFiBuffer[i]=100-100/(1+MathAbs(X/Y)) ;


i-- ;
}
return(0) ;
Dossiers :
demarkrf.mq4  2 kb
 
Laven писал(а) >>

Bonjour. Je me débats avec le code d'un indicateur personnalisé, basé sur la théorie de DeMark. L'essence de l'indicateur - le chemin parcouru par le prix (Close[i]-Open[i])/(High[i]-Low[i]) par unité de temps, par exemple un jour, est multiplié par le volume de la même période. Si le prix augmente, la valeur de cette valeur multipliée par le volume est ajoutée à la valeur précédente. Si le prix baisse, la valeur de ce jour est soustraite de la valeur du jour précédent. En d'autres termes, les valeurs positives sont ajoutées à la valeur du jour précédent et les valeurs négatives sont soustraites de la valeur du jour précédent. Le rapport entre les valeurs positives et négatives d'une période est la valeur en pourcentage de la pression acheteur/vendeur, en d'autres termes, l'accumulation/distribution de cet instrument financier.

La division par zéro s'avère.

Si avant toute division nous ajoutons le contrôle sur zéro, il commence à dessiner.

Mais nous devons modifier la logique de l'indicateur. A chaque nouveau tick, les variables X et Y prennent une valeur égale à zéro. Il fonctionne correctement sur l'historique.

Dossiers :
 
Laven писал(а) >>

Merci. Je vais donner un sens à VOTRE éditorial. Mais

La courbe du graphique va toujours vers le "plancher". Essayez le vôtre.

J'ai corrigé le message précédent. J'ai aussi changé le fichier.

Vous pouvez modifier l'indicateur. Mais il aura besoin de tampons supplémentaires pour les calculs intermédiaires.

 
Vinin >> :

La division par zéro fonctionne.

Si vous ajoutez un contrôle zéro avant toute division, il commence à dessiner.

Mais il serait nécessaire de retravailler la logique de l'indicateur. A chaque nouveau tick, les variables X et Y prennent des valeurs égales à zéro. Il fonctionne correctement sur l'historique

Sur l'histoire ? Il s'avère donc que cette journée doit être exclue des calculs. Commençons par hier et je... ?

Raison: