Fonction ICustom - page 12

 

Quelqu'un peut-il afficher une simple application qui achète et vend, en appelant deux indicateurs avec icustom().

Existe-t-il une fonction pour fermer les ordres en attente.

Merci

 

Aide iCustom

Bonjour.

J'essaie de modifier l'un des indicateurs de FerruFX pour utiliser des indicateurs personnalisés. J'ai déjà obtenu que toutes les MAs fonctionnent correctement, mais je ne suis pas sûr de savoir comment obtenir les informations correctes pour les deux autres indicateurs. J'aimerais finalement que cela affiche les données MTF des deux indicateurs que j'ai joints, PerkyAsctrend1 et HeikenAshi MTF. J'utilise iCustom pour les deux et je pense avoir utilisé les bonnes commandes dans cette mesure.

Je suis capable de produire des données (mais pas les données correctes) pour le PerkyAsctrend1. Je pensais avoir compris la logique pour qu'elles s'affichent correctement, mais je crois que ce n'est pas le cas. Ferru a utilisé MA, CCI, MACD, ADX, Bullspower et BearsPower dans son indicateur, mais il s'agit de différents types d'indicateurs et ils ne sont malheureusement pas très utiles comme référence (pour moi) pour PerkyAsctrend1 dans ce contexte.

Je pensais que l'indicateur HeikenAshi MTF serait assez facile à ajouter à l'indicateur. Apparemment, je me suis trompé. La colonne Heiken affiche "Label" de manière inexplicable et ils disparaissent tous après le premier tick.

J'espère que le code n'est pas aussi grossier pour vous que pour moi. Je suis un programmeur amateur. Si quelqu'un peut m'aider, j'apprécierais vraiment. J'ai besoin d'une paire d'yeux plus expérimentés sur ce sujet. Je pense que ce sera très bénéfique une fois terminé.

-

Voici les parties du code qui me posent problème. Les deux iCustoms me donnent des valeurs de 2147483647, le nombre total de barres dans l'historique/le graphique des prix.

int RISK = 4;

int AllBars = 250 ;

int MaMethod = 1 ;

int MaPeriod = 20 ;

//...

// Pesky

//...

string Pesky_Trend_1 //-- , Pesky_Trend_5, Pesky_Trend_15, Pesky_Trend_30, Pesky_Trend_60, Pesky_Trend_240, Pesky_Trend_1440, Pesky_Trend_10080 ;

double Pesky_m_1=iCustom(NULL,PERIOD_M1, "PerkyAsctrend1", RISK, AllBars,0,shift_1) ;

if ((Pesky_m_1 > 0)) { Pesky_Trend_1 = "UP" ; x = 416 ; color_indic = Lime ; UP_33 = 1 ; DOWN_33 = 0 ; }

if ((Pesky_m_1 < 0)) { Pesky_Trend_1 = "DOWN" ; x = 406 ; color_indic = Red ; UP_33 = 0 ; DOWN_33 = 1 ; }

// ...

// Indicateur (Heiken)

//...

string HA_Trend_1 //-- , HA_Trend_5, HA_Trend_15, HA_Trend_30, HA_Trend_60, HA_Trend_240, HA_Trend_1440, HA_Trend_10080 ;

double HA_1_1=iCustom(NULL,PERIOD_M1, "Heiken MTF",MaMethod,MaPeriod,shift_1) ;

double HA_2_1=iCustom(NULL,PERIOD_M1, "Heiken MTF",MaMethod,MaPeriod,shift_1+1) ;

if ((HA_1_1 > HA_2_1)) { HA_Trend_1 = "UP" ; x = 466 ; color_indic = Lime ; UP_41 = 1 ; DOWN_41 = 0 ; }

if ((HA_1_1 < HA_2_1)) { HA_Trend_1 = "DOWN" ; x = 456 ; color_indic = Lime ; UP_41 = 0 ; DOWN_41 = 1 ; }

//...

Je sais que les valeurs de décalage sont peu orthodoxes mais c'est ainsi que l'auteur original a procédé.

int start()

{

//...

// Calcul des décalages pour les indicateurs (tests uniquement)

double shift_1, shift_5, shift_15, shift_30, shift_60, shift_240, shift_1440, shift_10080 ;

si( test == true )

{

shift_1=iBarShift(NULL,PERIOD_M1,look_time_shift,false) ;

shift_5=iBarShift(NULL,PERIOD_M5,look_time_shift,false) ;

shift_15=iBarShift(NULL,PERIOD_M15,look_time_shift,false) ;

shift_30=iBarShift(NULL,PERIOD_M30,look_time_shift,false) ;

shift_60=iBarShift(NULL,PERIOD_H1,look_time_shift,false) ;

shift_240=iBarShift(NULL,PERIOD_H4,look_time_shift,false) ;

shift_1440=iBarShift(NULL,PERIOD_D1,look_time_shift,false) ;

shift_10080=iBarShift(NULL,PERIOD_W1,look_time_shift,false) ;

}

sinon

{

shift_1=shift_indicateurs ;

shift_5=indicateurs de décalage ;

shift_15=indicateurs d'équipe ;

shift_30=indicateurs d'équipe ;

décalage_60=indicateurs de décalage ;

décalage_240=indicateurs de décalage ;

shift_1440=indicateurs d'équipe ;

shift_10080=indicateurs de décalage ;

Merci...

 

Versions mises à jour

J'ai réorganisé tout ce qui doit l'être visuellement et changé certains noms de paramètres. Tout semble toujours être correct pour iCustom mais la valeur de PerkyAsctrend n'est pas calculée correctement et la logique de Heiken est apparemment complètement fausse. Il semble que ce n'est pas le soir que l'on fournit une double valeur pour l'iCustom pour l'indicateur Heiken MTF. Je ne les ai pas encore vérifiés, mais les deux valeurs doubles de l'iCustom pour les indicateurs étaient égales au nombre de barres dans mon historique (2147483647)... ! Je dois faire quelque chose de complètement faux avec iCustom mais je n'arrive pas à le trouver.

Si vous avez le temps ou l'énergie d'y jeter un coup d'œil, je vous en serais très reconnaissant.

Dossiers :
 

A : Homicida & Ra457 re : iCustom

Bonjour.

Cette valeur numérique élevée que vous obtenez lorsque vous utilisez iCustom, ressemble à une difficulté que j'ai rencontrée.

J'espère que cela vous aidera.

Assurez-vous que les paramètres que vous entrez dans iCustom sont exactement les mêmes, et dans le même ordre que ceux donnés dans les variables externes dans le code de l'indicateur lui-même.

Merci.

 

2147483647 n'a rien à voir avec votre historique.

C'est la plus grande valeur que peut avoir un entier signé de 32 bits et elle est utilisée par MT4 comme "Empty Value" par défaut des indicateurs.

Les indicateurs retournent "Empty Value" lorsque la valeur ne doit pas être affichée.

 

iCustom()

Bonjour, j'ai besoin de lire trois variables à partir d'un indicateur.

J'ai placé l'ourlet en haut de l'indicateur :

Variables

double eaBid=0 ;

double eaAsk=0 ;

string eaType="" ;

//==========================

Variables

#property indicator_separate_window

#property indicator_buffers 8

#property indicator_color1 Black

#property indicateur_color2 Lime

#property indicator_color3 Lime

#property indicator_color4 Yellow

#property indicator_color5 Red

#property indicateur_color6 Red

#property indicator_color7 Black

#property indicateur_color8 Noir

double eaEP=0 ;

double eaSL=0 ;

double eaType=0 ;

double iVars[] ;

Trucs et astuces

#property indicator_buffers 2

#property indicator_color1 Red

#property indicator_color2 ForestGreen

//---- paramètres d'entrée

string IndicatorName="TradeWatch" ;

double EntryBid=0 ;

double EntryAsk=0 ;

string EntryType="" ;

double eaBid=0 ;

double eaAsk=0 ;

string eaType="" ;

int init()

{

retourne (0) ;

}

Démarrage

{

EntryBid = iCustom(Symbol(), Period(), IndicatorName, eaBid, eaAsk, eaType, 1, 0) ;

EntryAsk = iCustom(Symbol(), Period(), IndicatorName, eaBid, eaAsk, eaType, 2, 0) ;

EntryType = iCustom(Symbol(), Period(), IndicatorName, eaBid, eaAsk, eaType, 3, 0) ;

}

Comment puis-je lire les trois variables dans mon EA ?

Je ne vois pas où je me trompe ?

Merci.

 

Pourquoi ne lisez-vous pas simplement les résultats des variables qui devraient se refléter dans les valeurs de tampon de l'indicateur? Si vous regardez les couleurs dans la configuration de l'indicateur après avoir placé l'indicateur sur le graphique, chaque couleur représente un tampon. La couleur du haut = buffer0, la deuxième couleur à partir du haut = buffer1 et ainsi de suite.

Utilisez quelque chose comme ceci dans votre EA :

Buff0=iCustom(NULL,0, "Indicator Name",0,0) ; //Couleur supérieure de l'indicateur

Buff0=iCustom(NULL,0, "Indicator Name",0,1) ; //1-Back

Buff1=iCustom(NULL,0, "Indicator Name",1,0) ; //Couleur supérieure suivante de l'indicateur

Buff1=iCustom(NULL,0, "Indicator Name",1,1) ; //1-Back

Modifiez les variables dans l'indicateur lui-même, et recompilez l'indicateur qui mettra à jour les buffers et l'indicateur sur le graphique !

Si vous ne comprenez toujours pas, je vous enverrai un EA et un indicateur pour que vous puissiez les examiner.

Dave

<<<

 

iCustom()

Merci Dave.

J'ai réussi à le faire fonctionner.

 

Bonne journée à tous

 

mon EA

j'ai créé mon EA - ASCTrend.mq4 avec MQ4 builder, qui utilise le signal asctrend avec la fonction ICustom. il peut ouvrir un trade BUY quand le signal est UP, et SELL quand DOWN.

Je veux ajouter à mon EA un filtre - avec le backtesting dans certaines paires, il semble bon de filtrer avec les BBands ind, mais je ne sais pas comment ajouter ce filtre dans mon EA - quelque chose comme ça je pense, mais je n'ai pas de chance.

double Buy1_1 = iCustom(Symbol(),0, "PerkyAsctrend1",0,1) ;

double Buy2_1 = iCustom(NULL, 0, "BBands_Stop_v1", 4, 0, Current + 1) ;

double Buy2_2 = 1 ;

double Sell1_1 = iCustom(Symbol(),0, "PerkyAsctrend1",1,1) ;

double Sell2_1 = iCustom(NULL, 0, "BBands_Stop_v1", 5, 0, Current + 1) ;

double Sell2_2 = 1 ;

si (Buy1_1 && Buy2_1 > Buy2_2) Ordre = SIGNAL_BUY ;

si (Sell1_1 && Sell2_1 > Sell2_2) Ordre = SIGNAL_VENTE ;

Dossiers :
Raison: