0% ont trouvé ce document utile (0 vote)
4 vues19 pages

Calcul de Heikin Ashi et Pivots

Le document décrit le code pour calculer les bougies Heikin-Ashi et identifier les pivots de tendance sur un graphique de prix. Il présente ensuite des indicateurs supplémentaires qui pourraient être tracés sur le graphique, y compris EMA, lignes de tendance, analyse de volume, %R de William, MACD, oscillateur stochastique, ADX et TMA sans retard. L'objectif est d'analyser les tendances des prix et d'identifier des signaux d'achat et de vente potentiels en utilisant ces indicateurs techniques.

Traduit par

ScribdTranslations
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues19 pages

Calcul de Heikin Ashi et Pivots

Le document décrit le code pour calculer les bougies Heikin-Ashi et identifier les pivots de tendance sur un graphique de prix. Il présente ensuite des indicateurs supplémentaires qui pourraient être tracés sur le graphique, y compris EMA, lignes de tendance, analyse de volume, %R de William, MACD, oscillateur stochastique, ADX et TMA sans retard. L'objectif est d'analyser les tendances des prix et d'identifier des signaux d'achat et de vente potentiels en utilisant ces indicateurs techniques.

Traduit par

ScribdTranslations
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

_SECTION_BEGIN("Boucle HA (pas de AMA() )");

(Open[0]+High[0]+Low[0]+Close[0]) / 4;
HaOpen[0] = (HaClose[0] + Open[0]) / 2;
HaHigh[0] = Max( High[0], Max( HaClose[0], HaOpen[0] ) );
HaLow[0] = Min( Low[0], Min( HaClose[0], HaOpen[0] ) );

pour (i=1; i<NombreDeBarres; i++)


{
(Open + High + Low + Close) / 4;
Haopen = (HaClose[i-1] + HaOpen[i-1]) / 2; // Voici le problème lorsque vous utilisez
Tableaux : Haopen utilise toujours sa propre valeur précédente
HaHigh = Max( High, Max( HaClose, HaOpen ) );
Min( Low, Min( HaClose, HaOpen ) );
}
//TracerOHLC( HaOpen, HaHigh, HaLow, HaClose, "HA", couleurOrange, styleBougie );

_SECTION_END();
Heikin Ashi - Calculé correctement sans utilisation d'AMA

HHV( C - 2 * ATR( 10 ), 15 );
EMA( H, 13 ) + 2 * ATR( 10 );

/* **********************************
Code pour identifier automatiquement les pivots
********************************** */

// -- quelle sera notre plage de retour pour le hh et le ll ?


140; //Quelle distance remonter
nBars = 12; //Number of bars

// -- Créer des tableaux initialisés à 0 de la taille de barcount


aHPivs = H - H;
aLPivs = L - L;

// -- Plus pour une utilisation future, pas nécessaire pour le traçage de base
aHPivHighs = H - H;
aLPivLows = L - L;
aHPivIdxs = H - H;
aLPivIdxs = L - L;
nHPivs = 0;
nLPivs = 0;
lastHPIdx = 0;
lastLPIdx = 0;
lastHPH = 0;
lastLPL = 0;
curPivBarIdx = 0;

// -- en regardant en arrière depuis la barre actuelle, combien de barres


// arretez-vous où se trouvaient les valeurs hhv et llv précédentes
// n bars, etc.?
aHHVBars = HHVBars( H, nBars );
aLLVBars = LLVBars( L, nBars );
aHHV = HHV( H, nBars );
aLLV = LLV( L, nBars );

Souhaite mettre cela en place pour que les pivots soient calculés en arrière à partir de
// dernière barre visible pour faciliter le retour en arrière et voir les pivots
// ce code trouverait. Cependant, la première instance de
// Le résultat de Trace affichera une valeur de 0
Statut("barvisible")
nDernierBarVis = DernièreValeur( PlusHaut( Si( aVisBars, IndexBar(), 0 ) ) )
_TRACE( "Dernière barre visible : " + nLastVisBar );

// -- Initialiser la valeur de curTrend


curBar = ( BarCount - 1 );
curTrend

si ( aLLVBars[curBar] < aHHVBars[curBar] )


{
D
}
sinon
{
U
}

// -- Boucle à travers les barres. Rechercher pour


// approche entièrement basée sur les tableaux
// dans une version future
pour ( i = 0; i < BarCount; i++ )
{
curBar = ( BarCount - 1 ) - i;
// -- Avons-nous identifié un pivot ? Si la tendance est à la baisse...

si ( aLLVBars[curBar] < aHHVBars[curBar] )


{
// ... et avait été en hausse, c'est un changement de tendance
si ( curTrend == "U" )
{
D
// -- Capturer les informations de pivot
curPivBarIdx = curBar - aLLVBars[curBar];
aLPivs[curPivBarIdx] = 1;
aLPivLows[nLPivs] = L[curPivBarIdx];
aLPivIdxs[nLPivs] = curPivBarIdx;
nLPivs++;
}

// -- ou la tendance actuelle est à la hausse


}
sinon
{
si ( curTrend == "D" )
{
U
curPivBarIdx = curBar - aHHVBars[curBar];
aHPivs[curPivBarIdx] = 1;
aHPivHighs[nHPivs] = H[curPivBarIdx];
aHPivIdxs[nHPivs] = curPivBarIdx;
nHPivs++;
}

// -- Si curTrend est à la hausse...sinon...


}

// -- boucle à travers les barres


}

// -- Tentative de base pour ajouter un pivot, cette logique a peut-être été manquée
// -- D'accord, maintenant je veux regarder les deux derniers pivots. Si le plus
// le récent pivot bas est après le dernier sommet, je pourrais
// j'ai toujours un sommet élevé que je n'ai pas capté
// -- Commencez au dernier bar
( BarCount - 1 );

candIdx = 0;

candPrc = 0;

aLPivIdxs[0];

aLPivLows[0];

dernierHPIdx = aHPivIdxs[0];

aHPivHighs[0];

si ( lastLPIdx > lastHPIdx )


{
// -- Informations sur le bar et le prix pour le pivot candidat
candIdx = curBar - aHHVBars[curBar];
aHHV[curBar];

si (
dernierHPH < prixCandidature ET
candIdx > lastLPIdx ET
candIdx < curBar
{
// -- D'accord, nous allons ajouter cela comme un pivot...
aHPivs[candIdx] = 1;
// ...et puis réorganiser les éléments dans le
// pivoter les tableaux d'informations
pour ( j = 0; j < nHPivs; j++ )
{
aHPivHighs[nHPivs-j] = aHPivHighs[nHPivs- ( j+1 )];
aHPivIdxs[nHPivs-j] = aHPivIdxs[nHPivs-( j+1 )];
}

aHPivHighs[0] = candPrc ;

aHPivIdxs[0] = candIdx;
nHPivs++;
}
}
sinon
{
// -- Informations sur la barre et le prix pour le pivot candidat
candIdx = curBar - aLLVBars[curBar];
aLLV[curBar];

si (
lastLPL > candPrc ET
candIdx > lastHPIdx ET
candIdx < curBar
{
// -- D'accord, nous allons ajouter cela comme un pivot...
aLPivs[candIdx] = 1;
// ...et ensuite réorganiser les éléments dans le
// informations de pivot des tableaux

pour ( j = 0; j < nLPivs; j++ )


{
aLPivLows[nLPivs-j] = aLPivLows[nLPivs-(j+1)];
aLPivIdxs[nLPivs-j] = aLPivIdxs[nLPivs-(j+1)];
}

aLPivLows[0] = candPrc;

aLPivIdxs[0] = candIdx;
nLPivs++;
}
}

//============== EXPLORATION ==============


Acheter
Vendre = Court = aHPivs == 1;
PrixDeVente = ValeurQuand(Vendre, C, 1);
PrixAchat = ValeurQuand( Achat, C, 1 );
Long = Flip( Acheter, Vendre );
Court

// pic de volume ( vérifier les actions dont le volume pour la journée est d'au moins 10 % supérieur
que sa moyenne de volume sur 30 jours)
Volume_to = Somme(Volume, 31);
Volume_to = Volume_to - Volume;
Volume30 = Volume_to / 30;
pourcentage = ( abs( Volume30 - Volume ) ) / Volume30;
pourcentage = pourcentage * 100;
Filtre = Volume > Volume30 ET pourcentage > 10;
pointe de volume
Filtrer=Acheter OU Vendre;
Vendre
AjouterColonne(Acheter,"Acheter");
AjouterColonne(Vendre,"Vendre");
AjouterColonne(V*C, "Valeur");
AddColumn(AchatPrix,"AchatPrix", 1.4);
AjouterColonne(PrixDeVente,"PrixDeVente", 1.4);
AjouterColonne(O, "Ouverture");
AjouterColonne(H, "Élevé");
AjouterColonne(L, "Basse");
AjouterColonne(C, "Fermer");
AjouterColonne(Volume30,"Volume moyen sur 30 jours", 1, couleurBleu);
AjouterColonne(Volume,"Volume Aujourd'hui", 1, couleurBleue);
AjouterColonne(Pourcentage," % Augmentation", 1.2, couleurBleu);

//============== Tracer le prix ==============


n = 15;

a = C > ( MA( H, n ) + MA( L, n ) ) / 2;// puis acheter au prochain bar au marché ;

b = C < ( MA( H, n ) + MA( L, n ) ) / 2; // alors vendre à découvert au marché lors de la prochaine barre;

IIf( BarsSince( a ) < BarsSince( b ), 1, 0 );

Longs = état == 1;

shorts = état == 0;

//Graphique
IIf( Longs, colorVert, IIf( Shorts, colorRouge, colorGris40 ) );
Tracer( C, "Fermé", ParamCouleur("Couleur", couleurDéfaut), stylePasDeTitre |
ParamStyle("Style") | GetPriceStyle() );

//Tracer(C, "Fermer", barreDeCouleur, styleSansLigne, styleSansTitre);


// ================= Le code original de Rasheed (avec Lookback et Shift par défaut définis
selon ses spécifications)

H0 = H;
L0 = L;
C0 = C;
O0 = O;

Param("LookBack", 10, 10, 50, 1); // Valeur par défaut pour les matières premières interjournalières
trading de devises
Paramètre( "Déplacement", 5, 1, 50, 1); // ?
x0 = DernièreValeur(Cum(1));
x1 = x0 - décalage;
H = Ref(H, - décalage + 1);
L = Ref(L, - décalage + 1);
DernièreValeur(Réf(HHV(H, RegardRétro), - 1));
L1 = DernièreValeur(Ref(LLV(L, RegardArrière), - 1));

Tracer(H1, "H1", couleurJaune);


Tracer(L1, "L1", couleurJaune);

H = H0;
L = L0;
C = C0;
O = O0;

up = Cross(H, H1)ET Cum(1) > x1;


dn = Croisée(L1, L) ET Cum(1) > x1;
// ================= Le code original de Rasheed (avec Lookback et Shift par défaut définis
à ses spécifications) =================

//============== Tracer la forme (SIGNAL D'ACHAT/VENTE) ==============


TracezDesFormes( IIf( aHPivs == 1, formeChiffre5, formeAucun ), couleurRouge, 0, Haut, Décalage =
30 );
TracezFormes( IIf( aLPivs == 1, formeChiffre3 , formeAucun ), couleurVertVif, 0, Bas,
Décalage = -30 );
//TracezFormes( IIf(Acheter, formeCerclePetit, formeAucune), couleurBlanc, 0, PrixAchat, Décalage
= -30 );
//TracerFormes( IIf(Vendre, formePetitCercle, formeAucune), couleurBlanc, 0, PrixDeVente,
Décalage = 30 );
BarreVisibleDébut
DernièreBarVisible = Statut("DernièreBarVisible");
pour( b = PremierBarVisible; b <= DernierBarVisible ET b < CompteBar; b++)

//============== EMA(13) ==============


//Tracer( EMA( C, 5 ), "" , couleurCiel + styleLigne + stylePasDeRedimensionnement );

//============== TENDANCES ==============


DTL = 30; // DTL = Définir la tendance longue

DTM = 7; // DTM = Define Trend Medium

TL = PenteRegressionLinéaire( MA( C, DTL ), 2 ); // TL = Tendance Longue

TM = LinRegSlope( MA( C, DTM ), 2 ); // TM = Tendance Moyenne

TS = LinRegSlope( MA( C, DTS ), 2 ); // TS = Tendance Courte

TLL = IIf( LinRegSlope( MA( C, DTL ), 2 ) > 0, Vrai, Faux );

TMM = IIf( LinRegSlope( MA( C, DTM ), 2 ) > 0, Vrai, Faux );


TSS = IIf( LinRegSlope( MA( C, DTS ), 2 ) > 0, Vrai, Faux );

//============== VOLUME ==============


Vlp = 30; //Volume lookback period

Vrg = MA( V, Vlp );

St = ÉcStd( Vrg, Vlp );

Vrg + 3 * st

Vp2 = Vrg + 2 * st;

Vp1 = Vrg + 1 * st;

Vrg - 1 * st;

Vn2 = Vrg - 2 * st;

//============== %R DE WILLIAM ==============


WR = ( ( HHV( H, 14 ) - C ) / ( HHV ( H, 14 ) - LLV ( L, 14 ) ) ) * -100;

//============== A/D ==============


TRH = IIf( Ref( C, -1 ) > H, Ref( C, -1 ), H );

TRL = IIf( Ref( C, -1 ) < L, Ref( C, -1 ), L );

ad = IIf( C > Ref( C, -1 ), C - TRL, IIf( C < Ref( C, -1 ), C - TRH, 0 ) );

WAD = Cum( ad );

wu = wad > Ref( wad, -1 );

wd = wad < Ref( wad, -1 );

//============== MACD ==============


MB = Croisement ( MACD(), Signal() );

MS = Croix( Signal(), MACD() );


MB = ExRem( MB, MS );

MS = ExRem( MS, MB );

MB1 = MACD() > Signal();

MS1 = MACD() < Signal();

//============== STOCH ==============


StochK( 10, 5 );

StochD(10, 5, 5);

Croisement( StochK( 10, 5 ), StochD( 10, 5, 5 ) );

StochSell = Croisement ( StochD( 10, 5, 5 ), StochK( 10, 5 ) );

StochK( 10, 5 ) > StochD( 10, 5, 5 );

StochK( 10, 5 ) < StochD( 10, 5, 5 );

//============== ADX ==============


Croiser( PDI( 14 ), MDI( 14 ) );

adxSell = Croisée( MDI( 14 ), PDI( 14 ) );

adxAcheter

adxVente

PDI(14) > MDI(14);

MDI( 14 ) > PDI( 14 );

//==============TMA sans décalage ==============


fonction ZeroLagTEMA( tableau, période )
{
TEMA( tableau, période );
TMA2 = TEMA( TMA1, période );
Diff = TMA1 - TMA2;
retourner TMA1 + Diff ;
}
( haClose + haOpen + haHigh + haLow ) / 4;

periodtm = 55;
ZLHa = ZeroLagTEMA( haClose, periodtm );
ZeroLagTEMA( Avg, periodtm );
Croiser( ZLTyp, ZLHa );
Croiser( ZLHa, ZLTyp );
ZLTyp > ZLHa
ZLHa > ZLTyp

//============== ZLW ==============


R = ( ( HHV( H, 14 ) - C ) / ( HHV ( H, 14 ) - LLV ( L, 14 ) ) ) * -100;
MaxGraph = 10;
PeriodZ = 10;
EMA1 = EMA( R, PériodeZ );
EMA2 = EMA( EMA1, 5 );
Différence = EMA1 - EMA2;
ZeroLagEMA = EMA1 + Différence;
PR = 100 - abs( ZeroLagEMA );
MoyenneMobile = MA( PR, 5 );
Acheter = Croiser( PR, moyenneMobile ) ET PR < 30;
Vendre = Croiser( moyenneMobile, PR ) ET PR > 70;
ZBuy1 = PR >= MoyenneMobile ET PR >= Ref( PR, -1 ) ;
ZSell1 = ( PR < MoveAvg ) OU PR >= MoveAvg ET PR < Ref( PR, -1 ) ;

//============== RS ==============
p = ( H + L + C ) / 3;
r1 = ( 2 * p ) - L;
(2 * p) - H;
r2 = p + ( r1 - s1 );
s2 = p - ( r2 - s1 );
R3 = P + ( R2 - S2 );
S3 = P - ( R3 - S2 );

//============== IBUY ==============


J'achète = Croiser( RSI( 14 ), EMA( RSI( 14 ), 9 ) );
Isell = Croisé( EMA( RSI( 14 ), 9 ), RSI( 14 ) );
Ibuy = ExRem(Ibuy, ISell);
Isell = ExRem( ISell, Ibuy );
BlRSI = RSI( 14 ) > EMA( RSI( 14 ), 9 );
BrRSI = RSI( 14 ) < EMA( RSI( 14 ), 9 );

//=================Tendances & Signaux & Indice de Marché ===============================


/// Veuillez remplacer "00DSEGEN" par le symbole de votre indice de marché et activer les codes

Marché taureau ours

Étranger("^PSEi", "C");
Cgo= Ref(Cg,-1);
//Haussier ou baissier à long terme
Bullg = Cg > WMA(Cg,200);
Bearg= Cg <WMA(Cg,200);

//Midterm Baissier ou Haussier


mBullg = Cg >WMA(Cg,50);
Cg <WMA(Cg,50);

À court terme haussier ou baissier


sBullg = Cg > WMA(Cg,15);
sBearg= Cg <WMA(Cg,15);
////////////////////////////////

Cg - Ref(Cg,-1);
Change1 = StrFormat("%1.2f% ",xChange1);
xChange1>=0;
xChange1<0;
xChange1/100;
StrFormat("%1.2f% ", xperchange1);
xperchange1>0
xperchange1 < 0;

Tendances & Signaux & Indice du Marché


FIN===============================

VOLUME
-----------------------------------------------------------------------------------
_SECTION_BEGIN("Volume");
ParamCouleur("Couleur", CouleurRGB(128, 128, 192));
Tracer( Volume, _NOM_PAR_DÉFAUT(), MélangeDeCouleur( Couleur, ObtenirCouleurFondGraphique(), 0.5 ),
stylePasDeTitre | ParamStyle( "Style", styleHistogramme | stylePropreÉchelle | styleÉpais |
styleNoLabel, maskHistogram ), 2 );
_SECTION_END();
VOLUME
-----------------------------------------------------------------------------------

// NOM DE STOCK / PRIX DU MARCHÉ AGRANDI


-----------------------------------------------------------------------------------
Nom de l'Action
si (PAS ParamToggle("InterrupteurNomStock","Activé,Désactivé"))
ParamCouleur("Couleur du nom du stock", CouleurRGB(44,44,37));
FS=Param("Taille de police",36,11,100,1);
Param("Position Horizontale",750,1,1200,1)
Ver=Param("Position Verticale",1,1,830,1);
YC=TimeFrameGetPrice("C",inDaily,-1);
DD=Préc(C-YC,2);
xx=Préc((DD/YC)*100,2);

{
GfxSelectFont("Time news roman", Status("pxheight")/7 );
GfxSetTextAlign(6 );
GfxSetOverlayMode(1);
GfxSetTextColor(nomDuStock);

GfxSetBkMode(0);
GfxTextOut(Nom(),Statut("pxwidth")/2, Statut("pxheight")/18 );

GfxSelectFont("Arial Narrow", 36, 700, True );


GfxSetBkMode( couleurBlanche );
GfxSetTextColor( ParamColor("Couleur", couleurOr) );
GfxTextOut(""+C, Hor+150, Ver);
GfxSelectFont("Arial Narrow", 14, 700, True);
GfxSetBkMode( couleurBlanche );
GfxSetTextColor(ParamColor("Couleur", colorRed) );
GfxTextOut("")+DD+" ("+xx+"%)", Hor+150 , Ver+45);

}
_SECTION_END();
// NOM DE L'ACTION / PRIX DU MARCHÉ AGRANDI
-----------------------------------------------------------------------------------

_SECTION_BEGIN( "Spécial 6" );


// Paramètres

Param("GraphXSpace", 5, -30, 30, 1);

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////

de = 1;
Param( "N Barres Pivot" , 31, 2, 500, 1 );
Hh = HHV( H, n );
Ll = LLV( L, n );

p1 = ll + ( hh - ll ) * 0.5;
p2 = ll + ( hh - ll ) * 0.382;
p3 = ll + ( hh - ll ) * 0,618;
p4 = ll + ( hh - ll ) * 0,236 ;
p5 = ll + ( hh - ll ) * 0.786;

(ParamColor("(Plus Haut Hi )",colorBrightGreen));


//Tracer(Hh, "p1:", Couleur1, stylePasDeLigne);

//Couleur2 =(ParamCouleur("ll + ( hh - ll ) * 0.786",couleurJaune));


//Tracer( p5, "p1:", Couleur2, stylePasDeLigne );

//Couleur3 =(ParamCouleur("ll + ( hh - ll ) * 0.618",couleurBleue));


//Tracer( p3, "p1:", Couleur3, styleSansLigne );
//Color4 =(ParamColor("ll + ( hh - ll ) * 0.5",colorBrightGreen));
//Tracer( p1, "p1:", Couleur4, styleSansLigne );

(ParamCouleur("ll + ( hh - ll ) * 0.382",couleurRouge));
//Tracer( p2, "p1:", Couleur5, stylePasDeLigne );

(ParamColor("ll + (hh - ll) * 0.236", couleurBleuClair));


//Tracer( p4, "p1:", Couleur6, stylePasDeLigne );

(ParamColor("( ll )",colorBlack))
//Tracer( Ll, "p1:", Color7, styleNoLine );

//Acheter = Croiser(L, LLV(L, n));


//Vendre = Croiser(HHV(H, n), H);

//TracerDesFormes(IIf(Acheter, formeCarré, formeAucun), couleurVerte, 0, L, Décalage=-5);


//TracéFormes(IIf(Acheter, formeCarrée, formeAucune), couleurCitronVert, 0,L, Décalage=-15);
//TracerFormes(IIf(Acheter, formeFlècheHaut, formeAucune), couleurBlanc, 0,L, Décalage=-10);

//TracerLesFormes(IIf(Vendre, formeCarré, formeAucune),couleurRougeFoncé, 0,H, Décalage= 5);


//TracerDesFormes(IIf(Vendre, formeCarré, formeAucune), couleurRouge, 0, H, Décalage = 15);
//TracerDesFormes(IIf(Vendre, formeFlècheBas, formeAucun),couleurBlanc, 0,H, Décalage=-10);

//PrixAchat =ValeurQuand(Achat,C);
PrixDeVente=ValeurQuand(Vendre,C);

//Acheter = ExRem(Acheter,Vendre);
//Vendre = ExRem(Vendre,Acheter);

//Acheter1 = Croiser(C, p4) ;


//Vendre1 = Croiser(p5, C) ;

//TracerDesFormes(shapeSmallUpTriangle*Acheter1,CouleurRGB( 80,125,165), 0,L,-20);


//PlotShapes(shapeSmallDownTriangle*Vente1,couleurJaune, 0,H,-20);

//PrixAchat1 =ValeurQuand(Achat1, C,1);


//PrixDeVente1=ValeurLorsDe(Vente1, C,1);

//Acheter1 = ExRem(Acheter1,Vendre1);
//Vendre1 = ExRem(Vendre1,Acheter1);

//Acheter2 = Croix(C, p2) ;


//Vendre2 = Croiser(p3, C) ;

//TracerDesFormes(shapeSmallUpTriangle*Acheter2,CouleurRGB(230, 0, 0), 0,L,-20);


//TracerDesFormes(shapeSmallDownTriangle*Vendre2,couleurBleu, 0,H,-20);

ValeurQuand(Achat2, C,1);
//PrixDeVente2=ValeurQuand(Vendre2, C,1);

//Acheter2 = ExRem(Acheter2,Vendre2);
//Vendre2 = ExRem(Vendre2,Acheter2);
//Acheter3 = Croiser(C, p1) ;
//Vendre3 = Croix(p1, C) ;

//TracerFormes(shapeSmallUpTriangle*Acheter3,couleurVertVif, 0,L,-30);
//TracerDesFormes(shapeSmallDownTriangle*Vendre2,couleurVertBrillant, 0,H,-20);

//PrixAchat3 =ValeurQuand(Achat3, C,1);


ValeurQuand(Sell3, C,1);

//Acheter3 = ExRem(Acheter3,Vendre3);
//Vendre3 = ExRem(Vendre3,Acheter3);

/*si(ValeurSélectionnée(Acheter OU Acheter1 OU Acheter2 OU Acheter3))


{
StaticVarSet( "tmp", 1 );
JouerSon("C:\Program Files\AmiBroker\son\[Link]");
DIS("BILI BILI BILI");
// Définir la couleur d'arrière-plan du graphique (ColorRGB(143,188,143));
}
si(ValeurSélectionnée(Vendre OU Vendre1 OU Vendre2 OU Vendre3))
{
StaticVarSet( "tmp", 0 );
JouerSon("C:\Program Files\AmiBroker\sound\[Link]");
BENTA BENTA BENTA
// Définir la couleur de fond du graphique (ColorRGB(240,128,128));
}
if(StaticVarGet("tmp")==1)
{
// Définir la couleur de fond du graphique (ColorRGB(143,188,143));
}
sinon
{
// DéfinirLaCouleurDeFondDuGraphique(ColorRGB(240,128,128));
}*/

_SECTION_END();

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
//=================================================================================
===================================================================================
==============
ICHIMOKU
_SECTION_BEGIN("Ichimoku");
Param( "Ligne Tenkan-Sen", 9, 1, 100 );
Param( "Kijun-Sen Ligne", 26, 1, 26, 1 );
Paramètre( "Période des Spans", 52, 1, 52, 1 );
//DéfinirOptionsDuGraphique(0, graphiqueAfficherFlèches|graphiqueAfficherDates);

SL = ( HHV( H, tour ) + LLV( L, tour ) ) / 2;


TL = ( HHV( H, prds ) + LLV( L, prds ) ) / 2;
DL = C;
Sp1 = ( SL + TL ) / 2;
Sp2 = ( HHV( H, étendue ) + LLV( L, étendue ) ) / 2;
{{NAME}} - {{INTERVAL}} {{DATE}} Ouvert %g, Haut %g, Bas %g
Fermer %g (%.1f%%) Vol " + WriteVal( V, 1.0 ) + " {{VALUES}}
ValeurSélectionnée( ROC( C, 1 ) ) );

//Tracer( C, "Fermeture", couleurNoire, stylePasTitre | ObtenirStylePrix() );


//Tracer( SL, "SL", couleurRouge, styleÉpais | stylePasDeLabel );
//Tracer( TL, "TL", couleurBleu, styleÉpais | styleSansÉtiquette );
//Tracer( DL, "CS", couleurJaune, styleEpais | styleSansÉtiquette, Null, Null, -prds, -2 );

IIf( Sp1 > Sp2, ParamColor( "Couleur de Span A", colorLightBlue ),


ParamCouleur( "Couleur de l'Espacement B", couleurBleuClair );
//TracerOHLC ( Sp1, Sp1, Sp2, Sp2, "Nuage", Couleur, styleNuage | stylePasDeLabel, Null,
Null, prds, -2 );
MyPort = 50000;
MonATR=ATR(7);//Entrez la moyenne ATR ou utilisez la moyenne mobile de 14 jours de l'ATR
PL = Ref(C,-26);

//Titre = Nom() + " (" + StrGauche(NomComplet(), 10) +


//") ATR : " + NumToStr(ATR(1), 4.2) + " ( " +
//NumToStr((C - Ref(C, -1)), 4.2) + " / " +
//NumToStr((((C - Ref(C, -1)) / Ref(C, -1)) * 100), 2.1) + "% ) " +
//WriteVal( SelectedValue( DateTime() ), formatDateTime) +
//" TL: " + WriteVal(SL, 2.2) +
//" KL:
Span A:
//" Span B :
Différence de portée :
Chikou Span Aujourd'hui :
Chikou Span 26 Jours Ago:
Limite de prix :
Ichimoku SL Pt :
Valeur SL:
//" Risque :
//" Limite de partage :
P
WriteVal ((MonPort)/1000, format=1.0) + "T";
_SECTION_END();
_SECTION_END();
//
//=================================================================================
===================================================================================
==============

//============== TITRE ==============


Titre
DéfinirOptionsDeGraphique(0,graphiqueAfficherFlèches|graphiqueAfficherDates);
printf( "Ouvrir : " + O );

si ( Statut( "action" ) == indicateurAction )


(
EncodeColor( couleurOr ) + "Système POPOY" + EncodeColor( CouleurRGB( 111,
208, 255 ) ) + " (" + Nom() + ") " + EncoderCouleur( couleurOr ) + Intervalle( 2 ) +
" " + Date() + " " + " Ouvert " + O + " " + "Salut " + H + " " + "Lo " + L + " "
EncodeCouleur( CouleurRGB( 111, 208, 255 ) ) +
Fermer
%)
+ " " + WriteIf( V*C > Vp2, EncodeColor( colorBrightGreen ) + "(Très Élevé)",
ÉcritSi( V*C > Vp1, EncoderCouleur( couleurCitron ) + "(Élevé)", ÉcritSi( V*C > Vrg,
EncodeColor( couleurCitron ) + "(Au-dessus de la moyenne)"
ÉcrivezSi( V*C <Vrg ET V*C >Vn1, EncoderCouleur( CouleurRGB( 255, 0, 128 ) ) + "(Moins
que la moyenne)
EncodeColor( couleurOr ) + " "
+ EncoderCouleur( couleurOr ) + "EMA(Fermeture,9) = " + EncoderCouleur( couleurVertVif ) +
ÉcrireVal( MA( C, 9 ), 1.4 )

+ "\n" + EncodeColor( colorGrey40 ) +


"--------------------------------------------------------"

ÉcrireSi( TS > 0 ET TS < 0.3, EncoderCouleur( couleurCitronVert ) + "Tendance Haussière Faible",


ÉcrireSi( TS >= 0.3 ET TS < 0.6 , EncoderCouleur( couleurOr ) + "Tendance Haussière Moyenne",
WriteIf( TS >= 0.6, EncodeColor( colorGreen ) + "Tendance Haussière Forte",
ÉcrivezSi( TS<0 ET TS> -0.3, EncodeCouleur( couleurRose ) + "Tendance Baissière Faible",
ÉcrireSi( TS <= -0,3 ET TS > -0,6 , EncoderCouleur( CouleurRGB( 255, 0, 128 ) ) +
Tendance baissière modérée
ÉcrireSi( TS <= -0.6, EncoderCouleur( couleurRouge ) + "Fort Tendance à la Baisse",
EncodeColor( couleurOr ) + "De côté" ) ) ) ) ) )

ÉcrireSi( TM > 0 ET TM < 0,3, EncoderCouleur( couleurLime ) + "Tendance Haussière Faible",


ÉcrireSi( TM >= 0.3 ET TM < 0.6 , EncoderCouleur( couleurOr ) + "Tendance Haussière Moyenne",
EcrisSi( TM >= 0.6, EncodeCouleur( couleurVerte ) + "Fort Tendance Haussière",
ÉcrireSi( TM<0 ET TM> -0.3, EncoderCouleur( couleurRose ) + "Tendance à la baisse faible",
ÉcrisSi( TM <= -0.3 ET TM > -0.6 , EncodeCouleur( CouleurRGB( 255, 0, 128 ) ) +
Tendance baissière modérée
ÉcrireSi( TM <= -0.6, EncoderCouleur( couleurRouge ) + "Fort tendance baissière",
EncodeColor( couleurOr ) + "De côté" ) ) ) ) ) )

ÉcrireSi( TL > 0 ET TL < 0,3, EncodeCouleur( couleurCitron ) + "Tendance Haussier Faible",


ÉcrireSi( TL >= 0.3 ET TL < 0.6 , EncoderCouleur( couleurOr ) + "Tendance haussière moyenne",
ÉcrireSi( TL >= 0.6, EncoderCouleur( couleurVerte ) + "Forte Tendance à la Haussé",
ÉcrireSi( TL<0 ET TL> -0.3, EncoderCouleur( couleurRose ) + "Tendance Baissière Faible",
ÉcrireSi( TL <= -0.3 ET TL > -0.6 , EncoderCouleur( CouleurRGB( 255, 0, 128 ) ) +
Tendance baissière moyenne
ÉcrivezSi( TL <= -0.6, EncodeCouleur( couleurRouge ) + "Fort Tendance Baissière",
EncodeColor( couleurOr ) + "De côté" ) ) ) ) ) )

"--------------------------------------------------------"
AccDist ():
EncodeColor( couleurOr ) + "Accumulation", WriteIf( wd, EncodeColor( couleurRouge ) +
Distribution

+ "\n" + EncodeColor( ColorRGB( 111, 208, 255 ) ) + "RSI (14): " + WriteIf( RSI( 14
) > 30 ET RSI( 14 ) < 70, EncodeColor( couleurOr ), WriteIf( RSI( 14 ) < 30 ,
EncodeColor( couleurBleue ), EncodeColor( couleurRouge ) ) ) + WriteVal( RSI( 14 ), format
= 1.1 )
+ ÉcrireSi( RSI( 14 ) > 30 ET RSI( 14 ) < 70, " Plage" + EncoderCouleur( couleurOr ),
ÉcrireSi( RSI( 14 ) < 30 , " SousVendu" + EncoderCouleur( couleurBleue ), " SurVendu" +
EncoderCouleur( couleurRouge ) ) )

+ "\n" + EncodeColor( ColorRGB( 111, 208, 255 ) ) + "CCI (14): " + WriteIf( CCI( 14
) > -100 ET CCI( 14 ) < 100, EncodeColor( colorGold ), WriteIf( CCI( 14 ) < -100 ,
EncodeCouleur( couleurBleue ), EncodeCouleur( couleurRouge ) ) ) + ÉcrireValeur( CCI( 14 ), format
= 1.1 )
+ ÉcrireSi( CCI( 14 ) > -100 ET CCI( 14 ) < 100, " Plage" +
EncodeColor( couleurOr ), ÉcrireSi( CCI( 14 ) < -100 , " SurVendu" +
EncodeColor( couleurBleue ), " SurAchat" + EncodeColor( couleurRouge ) ) )

EcrireSi( ROC( C, 14 ) > -10 ET ROC( C, 14 ) < 10, EncoderCouleur( couleurOr ),


ÉcrireSi( ROC( C, 14 ) < -10 , EncoderCouleur( couleurBleue ), EncoderCouleur( couleurRouge ) ) )
+ ÉcrireVal( ROC( C, 14 ), format = 1.1 )
+ ÉcrisSi( ROC( C, 14 ) > -10 ET ROC( C, 14 ) < 10, " Plage" +
EncodeColor( couleurOr ), WriteIf( ROC( C, 14 ) < -10 , " SurVendu" +
EncodeColor( couleurBleue ), " SurAcheter" + EncodeColor( couleurRouge ) ) )

EncodeColor( ColorRGB( 111, 208, 255 ) ) + "Wm%R (14): " + WriteIf( WR >
-80 ET WR < -20, EncodeColor( couleurOr ), WriteIf( WR < -80 ,
EncodeColor( couleurBleue ), EncodeColor( couleurRouge ) ) ) + WriteVal( WR, format =
1.1 )
+ ÉcrireSi( WR > -80 ET WR < -20, " Plage" + EncodeCouleur(couleurOr ), ÉcrireSi( WR <
SurVendu
) ) )

"--------------------------------------------------------"

ÉcrireSi( Jachète, EncoderCouleur( couleurOr) + "AvertissementAchat", ÉcrireSi( JeVends, EncoderCouleur(


colorRouge ) + "AlerteDeVente", ÉcrireSi( BlRSI, EncoderCouleur( couleurOr ) +
"ZoneHaussière", ÉcrireSi( BrRSI, EncoderCouleur( couleurRouge ) + "ZoneBaissière", "Neutre" )
) ) )

WriteIf( TMBuy, EncodeColor(colorGold ) + "Acheter", WriteIf( TMSell,


EncodeColor( couleurRouge ) + "Vendre", WriteIf( TMBuy1, EncodeColor( couleurOr ) +
Haussier, ÉcrireSi( TMSell1, EncoderCouleur( couleurRouge ) + "Baissier", "Neutre" ) ) ) )

ÉcrireSi( MB, EncodeCouleur( couleurOr ) + "Acheter", ÉcrireSi( MS, EncodeCouleur( couleurRouge )


+ "Vendre", ÉcrireSi( MB1, EncoderCouleur( couleurOr ) + "Haussier", ÉcrireSi( MS1,
EncodeColor( colorRouge ) + "Baissier", "Neutre" ) ) ) )

ÉcrivezSi( StochAchat, EncodeCouleur( couleurOr ) + "Achat", ÉcrivezSi( StochVente,


EncodeColor( couleurRouge ) + "Vendre", WriteIf( StAchat, EncodeColor( couleurOr ) +
"Haussier", WriteIf( StSell, EncodeColor( couleurRouge ) + "Baissier", "Neutre" ) ) ) )

ÉcrireSi( adxAchat, EncoderCouleur( couleurOr ) + "Achat", ÉcrireSi( adxVente,


EncodeCouleur( couleurRouge ) + "Vendre", ÉcrireSi( adxAcheter1, EncodeCouleur( couleurOr ) +
"Haussier", ÉcrireSi( adxVente1, EncoderCouleur( couleurRouge ) + "Baissier",
Neutre

+ "\n" + EncodeColor( couleurGrise40 ) +


"--------------------------------------------------------"

Fibo Retracement
100%
+EcrireVal(Hh,1.4)
78,6%
+WriteVal(p5,1.4)+EncodeColor(colorRed)+" 38.2% "+EncodeColor(colorRed)
+WriteVal(p2,1.4)

+WriteVal(p3,1.4)+EncodeColor(colorRed)+" 23,6% "+EncodeColor(colorRed)


+ÉcrireVal(p4,1.4)
50,0%
EncodeColor( couleurRouge )+" 00.0% "+WriteVal(Ll,1.4)

// + "\n" + EncodeColor( couleurNoire ) +


"----------------------------------------------------------------------------"
// + "\n" + EncodeColor( ColorRGB( 111, 208, 255 ) ) + "Déclencher l'arrêt : " +
EncoderCouleur( couleurCitron ) + ÉcrireValeur( TrailStop, format = 1.4 )

EncodeColor( couleurCitron ) + WriteVal( PrendreProfit, format = 1.4 )


"--------------------------------------------------------"
//+ EncodeColor( couleurBlanche )+ TL:
//+ EncodeColor( couleurBlanche )+" KL: " + WriteVal(TL, 2.2)
//+ EncodeColor( couleurBlanche )+"\nSpan A: " + WriteVal(Sp1, 2.2)
//+ EncodeColor( couleurBlanche )+"\nSpan B: " + WriteVal(Sp2, 2.2)
//+ EncodeColor( couleurBlanche )+" Diff span: " + WriteVal(Sp1 - Sp2, 2.2)
//+ EncodeColor( couleurBlanche )+"\nChikou Span Aujourd'hui: " + WriteVal(C, 2.2)
//+ EncodeColor( couleurBlanche )+"\nChikou Span il y a 26 jours : " + WriteVal(PL, 2.2)
//+ EncodeColor( couleurBlanche )+" Limite de prix: " + WriteVal((TL+ATR(14)*1.5), 2.2)
//+ EncodeColor( couleurBlanche )+" Ichimoku SL Pt :" + WriteVal (MonATR*3,format=1.2 )
//+ EncodeColor( couleurBlanche )+" Valeur SL: " + WriteVal ( Fermer - (MonATR*3),
(format=1.2))
//+ EncodeColor( couleurBlanche )+" Risque : " + WriteVal
( (MonATR*3/Fermeture)*100,format=1.2 ) + "%"
//+ EncodeColor( couleurBlanche )+"\nLimite de partage: " + WriteVal
((MonPort*0.01)/(MonATR*3),(format=1.2))
//+ EncoderCouleur( couleurBlanche )+"\n"+ "P"+EcrireVal(C*((MonPort*0.02)/(MonATR*3)),
(format=1.0))+ " de" +" " + WriteVal ((MyPort)/1000,format=1.0)+"T"
// + "\n" + EncodeColor( ColorRGB( 111, 208, 255 ) ) + "R1: " +
EncodeColor( couleurOrange ) + WriteVal( r1, format = 1.4 )
// + EncodeColor( ColorRGB( 111, 208, 255 ) ) + " R2: " +
EncodeColor( couleurOrange ) + WriteVal( r2, format = 1.4 )
// + EncoderCouleur( CouleurRGB( 111, 208, 255 ) ) +
EncodeColor( couleurOrange ) + WriteVal( r3, format = 1.4 )
// + "\n" +EncodeColor( ColorRGB( 111, 208, 255 ) ) + "S1: " +
EncodeCouleur( couleurOrange ) + ÉcrireValeur( s1, format = 1.4 )
// + EncoderCouleur( CouleurRGB( 111, 208, 255 ) ) + " S2: " +
EncoderCouleur( couleurOrange ) + ÉcrireValeur( s2, format = 1.4 )
// +EncodeColor( ColorRGB( 111, 208, 255 ) ) + " S3: " + EncodeColor( colorOrange )
+ WriteVal( s3, format = 1.4 )
);
_SECTION_END();
//=================================================================================
===================================================================================
==============

//=================================================================================
===================================================================================
==============
VOLUME AU PRIX
_SECTION_BEGIN("Volume Au Prix");
PlotVAPOverlay( Param("Lignes", 300, 100, 1000, 1 ), Param("Largeur", 5, 1, 100, 1 )
ParamCouleur("Couleur", cycleCouleur ), ParamToggle("Côté", "Gauche|Droite" ) |
4*ParamToggle("Ordre-Z", "Au-dessus|Derrière", 1 ) );
_SECTION_END();
//=================================================================================
===================================================================================
==============

//=================================================================================
===================================================================================
==============
// LIGNES DE TENDANCE
//pourcentage = 0.01 * 1; /* Ajustez ce pourcentage si nécessaire, j'utilise .01 parce que FOREX
est un nombre 0.0000
//firstpointL = 2;
//firstpointH = 2;
//
//y0=DernièreValeur(Fond(L, pourcentage, premierPointL));
//y1=DernièreValeur(Fond(Ref(L,-1),pourcentage,1));
//
//pour( t = 1; t < BarCount ET y0 >= y1; t++ )
//{
// premierpointL++;
// y0=ValeurDernière(Fosse(L, pourcentage, premierPointL));
//}
//
//x0=NombreBarres - 1 - DernièreValeur(BarsCreux(L, pourcentage, premierPointL));
//x1=NombreDeBarres - 1 - DernièreValeur(BarsDeCreux(Ref(L,-1),pourcentage,1));
//LineL = TableauDeLigne( x0, y0, x1, y1, 1 );
//
//Tracer( LineL, " Ligne de tendance de support", couleursBlanc, 1 + 4 );
//
//yt0=DernièreValeur(Pic(H, pourcentage, premierPointH));
//yt1=DernièreValeur(Peak(Ref(H,-1),pourcentage,1));
//
//pour(t = 1; t < BarCount ET yt0 <= yt1; t++ )
//{
// premierpointH++;
// yt0=DernièreValeur(Peak(H,percent,premierpointH));
//}
//xt0=NombreDeBarres - 1 - DernièreValeur(BarsDePic(H, pourcentage, premierPointH));
//xt1=NombreDeBarres - 1 - DernièreValeur(BarsDePic(Ref(H,-1),pourcentage,1));
//LineH = TableauLigne( xt0, yt0, xt1, yt1, 1 );
//
//Tracé(LigneH, "Ligne de tendance de résistance", couleurBlanche, 1 + 4);
//
//=================================================================================
===================================================================================
==============

_SECTION_BEGIN("MA3");
P = ChampParam("Champ de prix", -1);
Paramètres("Périodes", 15, 2, 300, 1, 10);
Tracer(MA(P, Périodes), _NOM_PAR_DÉFAUT(), ParamCouleur("Couleur", cycleDeCouleur))
ParamStyle("Style") ;
_SECTION_END();

Vous aimerez peut-être aussi