Mon compte
Déjà membre ? S'identifier
Non inscrit ? S'inscrire
 
+ Répondre à la discussion
Page 1 sur 2 1 2 DernièreDernière
Affichage des résultats 1 à 10 sur 12
  1. #1
    Membre lvl 50 Shark est sur la route de la réputation... Avatar de Shark
    Date d'inscription
    December 2009
    Messages
    73
    Pouvoir de réputation
    5

    Alerte sur stoch Alerte sur stoch

    Bonsoir

    J'ai deux indicateurs, le premier est un stochastique classique avec alertes ( surachat/survente/croisement ), le second un stochastique MTF.

    J'aimerais avoir une alerte sur croisement de la stochastique MTF, pas d'alertes zone surachat/survente.

    Malgré différents essais en bidouillant les deux indics, et je dis bien bidouiller vu mon niveau en programmation .

    Si une âme charitable pouvait me rendre ce service.

    Cordialement
    Fichiers attachés

  2. #2
    Membre Performance jeanjo est sur la route de la réputation...
    Date d'inscription
    November 2010
    Messages
    181
    Pouvoir de réputation
    3

    Je n'y connais rien en alerte, mais je peux regarder si tu postes les codes

  3. #3
    Membre lvl 50 Shark est sur la route de la réputation... Avatar de Shark
    Date d'inscription
    December 2009
    Messages
    73
    Pouvoir de réputation
    5

    Salut

    Merci Jeanjo, je te poste les deux codes.

    Cdlt

  4. #4
    Membre lvl 50 Shark est sur la route de la réputation... Avatar de Shark
    Date d'inscription
    December 2009
    Messages
    73
    Pouvoir de réputation
    5

    Stoch avec alertes Stoch avec alertes

    extern bool UseCrossMode=false;
    extern bool UseOBOSMode=true;
    extern string init="0 periods will alert immediately";
    extern int PeriodsToConfirmX=1;
    extern string ggg="Stochastic Settings";
    extern int K=5,D=3,SL=3;
    extern int OB_OS_mode=1;

    int obos(int t,int pd){
    double
    ylw=iStochastic(NULL,0,K,D,SL,MODE_SMA,0,MODE_MAIN ,pd),
    ppl=iStochastic(NULL,0,K,D,SL,MODE_SMA,0,MODE_SIGN AL,pd);

    if (t==1){
    if(ylw>80)return(2);
    if(ylw<20)return(1);
    }
    if (t==2){
    if(ylw>80 && ppl > 80)return(2);
    if(ylw<20 && ppl < 20)return(1);
    }
    return(0);
    }


    int cross(int pd){
    double
    ylw=iStochastic(NULL,0,K,D,SL,MODE_SMA,0,MODE_MAIN ,pd),
    ppl=iStochastic(NULL,0,K,D,SL,MODE_SMA,0,MODE_SIGN AL,pd),
    ylwpre=iStochastic(NULL,0,K,D,SL,MODE_SMA,0,MODE_M AIN,pd+1),
    pplpre=iStochastic(NULL,0,K,D,SL,MODE_SMA,0,MODE_S IGNAL,pd+1);

    if(ylw>ppl && ylwpre<pplpre)return(1);
    if(ylw<ppl && ylwpre>pplpre)return(2);

    return(0);
    }
    string fin(int trend){
    if(trend==1)return("UP");
    if(trend==2)return("DOWN");
    }

    int init(){
    int j=PeriodsToConfirmX;
    for(int i=1000;i>0;i--){
    if(cross(i)==1){int trend=1; int per=i;}
    if(cross(i)==2){ trend=2; per=i;}
    if(obos(1,i)==1){int ind =1;int per2=i;}
    if(obos(1,i)==2){ ind =2;per2=i;}
    }
    if(ind == 1)string o=" < 20 ";
    if(ind == 2) o=" > 80 ";
    if(trend==1)string k="UP";
    if(trend==2) k="DOWN";

    Comment("\n","Indicators last crossed ",k," ",per," periods ago.","\n",
    " Stochastics were last",o," ",per2," periods ago.");
    PlaySound("alert.wav");
    Alert("Indicators Have Crossed ",fin(trend)," ",per," periods ago.");


    return(0);
    }
    //+------------------------------------------------------------------+
    //| expert deinitialization function |
    //+------------------------------------------------------------------+
    int deinit()
    {
    //----

    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    //| expert start function |
    //+------------------------------------------------------------------+
    int start(){

    int i= PeriodsToConfirmX;
    static int bar,bar2,cancel,cancel2;
    if(UseCrossMode){
    if(bar!=Bars)cancel=0;
    if(cancel == 7 || cancel==0){
    if(cross(i)==1){
    PlaySound("alert.wav");Alert("Indicators Have Crossed ",fin(1));
    Comment("UP");
    int ret=MessageBox("Cancel Alerts for This Period?",NULL,MB_YESNO|MB_ICONQUESTION);
    if(ret==IDYES){
    cancel=6;bar=Bars;
    }
    }
    if(cross(i)==2){
    PlaySound("alert.wav");Alert("Indicators Have Crossed ",fin(2));
    Comment("DOWN");
    ret=MessageBox("Cancel Alerts for This Period?",NULL,MB_YESNO|MB_ICONQUESTION);
    if(ret==IDYES){
    cancel=6;bar=Bars;
    }
    }
    }
    }
    int m=OB_OS_mode;

    if(UseOBOSMode){
    if(bar2!=Bars)cancel2=0;
    if(cancel2 == 7 || cancel2==0){
    if(obos(m,i)==1){
    PlaySound("alert.wav");Alert("Stochastics < 20 ");
    Comment("<20");
    int ret2=MessageBox("Cancel Alerts for This Period?",NULL,MB_YESNO|MB_ICONQUESTION);
    if(ret2==IDYES){
    cancel2=6;bar2=Bars;
    }
    }
    if(obos(m,i)==2){
    PlaySound("alert.wav");Alert("Stochastics > 80 ");
    Comment(">80");
    ret2=MessageBox("Cancel Alerts for This Period?",NULL,MB_YESNO|MB_ICONQUESTION);
    if(ret2==IDYES){
    cancel2=6;bar2=Bars;
    }
    }
    }
    }

    return(0);
    }

  5. #5
    Membre lvl 50 Shark est sur la route de la réputation... Avatar de Shark
    Date d'inscription
    December 2009
    Messages
    73
    Pouvoir de réputation
    5

    MTF Stoch MTF Stoch

    #property indicator_separate_window
    #property indicator_buffers 2
    #property indicator_color1 Yellow
    #property indicator_color2 DimGray
    #property indicator_level1 76.4
    #property indicator_level2 23.6
    #property indicator_maximum 100
    #property indicator_minimum 0

    //---- input parameters
    extern int TimeFrame = 15, // {1=M1, 5=M5, 15=M15, ..., 1440=D1, 10080=W1, 43200=MN1}
    KPeriod = 14,
    DPeriod = 3,
    Slowing = 3,
    MAMethod = 0, // {0=SMA, 1=EMA, 2=SMMA, 3=LWMA}
    PriceField = 0; // {0=Hi/Low, 1=Close/Close}

    //---- indicator buffers
    double Buffer1[],
    Buffer2[];

    //+------------------------------------------------------------------+
    //| Custom indicator initialization function |
    //+------------------------------------------------------------------+
    int init()
    {
    //---- indicator lines
    SetIndexBuffer(0,Buffer1);
    SetIndexBuffer(1,Buffer2);
    SetIndexStyle(0,DRAW_LINE);
    SetIndexStyle(1,DRAW_LINE);

    //---- name for DataWindow and indicator subwindow label
    string TimeFrameStr;
    switch(TimeFrame)
    {
    case 1: TimeFrameStr="Period M1"; break;
    case 5: TimeFrameStr="Period M5"; break;
    case 15: TimeFrameStr="Period M15"; break;
    case 30: TimeFrameStr="Period M30"; break;
    case 60: TimeFrameStr="Period H1"; break;
    case 240: TimeFrameStr="Period H4"; break;
    case 1440: TimeFrameStr="Period D1"; break;
    case 10080: TimeFrameStr="Period W1"; break;
    case 43200: TimeFrameStr="Period MN1"; break;
    default: TimeFrameStr="Current Timeframe";
    }

    IndicatorShortName(TimeFrameStr+" Stoch("+KPeriod+","+DPeriod+","+Slowing+")");
    }


    //+------------------------------------------------------------------+
    //| MTF Stochastic |
    //+------------------------------------------------------------------+
    int start()
    {
    for(int i = Bars-1-IndicatorCounted(); i >= 0; i--)
    {
    int shift1 = iBarShift(NULL,TimeFrame,Time[i]),
    time1 = iTime (NULL,TimeFrame,shift1),
    shift2 = iBarShift(NULL,0,time1);

    Buffer1[shift2] = iStochastic(NULL,TimeFrame,KPeriod,DPeriod,Slowing ,MAMethod,PriceField,0,shift1);
    Buffer2[shift2] = iStochastic(NULL,TimeFrame,KPeriod,DPeriod,Slowing ,MAMethod,PriceField,1,shift1);

    //----
    // linear interpolation for indicators from a higher timeframe
    if(TimeFrame <= Period())
    continue;

    //----
    // current candle
    if(shift1==0)
    for(int n = 1; shift2-n >= 0; n++)
    {
    Buffer1[shift2-n] = Buffer1[shift2];
    Buffer2[shift2-n] = Buffer2[shift2];
    }

    // count number of intermediate bars
    for(n = 1; shift2+n < Bars && Time[shift2+n] > iTime(NULL,TimeFrame,iBarShift(NULL,TimeFrame,Time[shift2+n],true)); n++)
    continue;

    //----
    // apply interpolation
    double factor = 1.0 / n;
    for(int k = 1; k < n; k++)
    {
    Buffer1[shift2+k] = k*factor*Buffer1[shift2+n] + (1.0-k*factor)*Buffer1[shift2];
    Buffer2[shift2+k] = k*factor*Buffer2[shift2+n] + (1.0-k*factor)*Buffer2[shift2];
    }
    }


    return(0);
    }

  6. #6
    Membre Star remjie est actif et passionnant Avatar de remjie
    Date d'inscription
    January 2011
    Localisation
    Rhone
    Messages
    279
    Pouvoir de réputation
    10

    Salut,
    et un simple petit if avec une bool pour pas avoir 30 fois le message ne convient pas?

    dit moi si ma modif en PJ te va ou pas
    Fichiers attachés

  7. #7
    Membre lvl 50 Shark est sur la route de la réputation... Avatar de Shark
    Date d'inscription
    December 2009
    Messages
    73
    Pouvoir de réputation
    5

    Salut Remjie

    Je viens de tester ta modif, cela semble fonctionner parfaitement. Un petit plus à te demander mais je ne veux pas abuser, si cela t'ennuie je comprends, je voudrais que dans l'alerte figure en plus la paire de devise concernée.

    Merci pour la modif déjà effectuée et le temps consacré

    Cdlt

  8. #8
    Membre Star remjie est actif et passionnant Avatar de remjie
    Date d'inscription
    January 2011
    Localisation
    Rhone
    Messages
    279
    Pouvoir de réputation
    10

    Mais quel paria!!!! Aucun respect pour les vieux!!

    Joke

    Tien c'est avec plaisir, profite en j'ai appris le mq4 cette semaine, je prend du plaisir a coder
    (surtout que la c'était pas franchement la mer a boire ^^' )
    Fichiers attachés
    Dernière modification par remjie ; 06/04/2011 à 23h50. Motif: avec la PJ, c'est mieu....

  9. #9
    Membre lvl 50 Shark est sur la route de la réputation... Avatar de Shark
    Date d'inscription
    December 2009
    Messages
    73
    Pouvoir de réputation
    5

    Salut

    Bah oui je sais j'abuse , encore merci pour ta contribution.

    Cdlt

  10. #10
    Membre lvl 50 Shark est sur la route de la réputation... Avatar de Shark
    Date d'inscription
    December 2009
    Messages
    73
    Pouvoir de réputation
    5

    Re

    Je viens de tester cela fonctionne parfaitement. .

    Encore merci

Discussions similaires

  1. Slope_Direction_Line_Alert.mq4:pbm alerte
    Par jfp75 dans le forum Programmation
    Réponses: 0
    Dernier message: 20/01/2010, 08h57
  2. alerte sur indicateur
    Par didger dans le forum Programmation
    Réponses: 20
    Dernier message: 13/01/2010, 19h30
  3. alerte par mail
    Par didger dans le forum Utilisation des Plateformes de Trading
    Réponses: 17
    Dernier message: 05/01/2010, 18h24
  4. Divergence Stoch RSI
    Par bedaine dans le forum Trading Divers
    Réponses: 2
    Dernier message: 23/02/2009, 18h44
  5. Alerte + MT4
    Par chaouch dans le forum Systèmes de Trading Auto
    Réponses: 3
    Dernier message: 12/08/2008, 12h25

Ajouter aux Favoris | Plan du site | Archives | Forex | Contact