LastManStandingIndicator

Viewing 10 posts - 1 through 10 (of 10 total)
  • Author
    Posts
  • #51336 quote
    salvo64
    Participant
    Junior

    Salvo Nicolas, spero di aver seguito correttamente le istruzioni.

    L’indicatore di cui sopra individua dei punti swing sui vari grafici e disegna anche una media mobile. Spero di essere stato esauriente. Grazie, Salvo

    
    //+------------------------------------------------------------------+
    //| LastManStandingIndicator.mq4 |
    //| Copyright 2016, Jay Davis |
    //| https://www.tidyneat.com |
    //+------------------------------------------------------------------+
    #property copyright "Copyright 2016, Jay Davis"
    #property link "https://www.tidyneat.com"
    #property version "1.1"
    #property strict
    #property indicator_chart_window
    #property indicator_buffers 5
    
    
    
    extern color MajorSwingColor=clrPurple;
    extern int MajorSwingSize=3;
    extern int PeriodsInMajorSwing=13;
    
    extern color MinorSwingColor=clrCornflowerBlue;
    extern int MinorSwingSize=1;
    extern int PeriodsInMinorSwing=5;
    
    extern ENUM_MA_METHOD MovingAveragMethod=MODE_EMA;
    extern int MovingAveragePeriods= 55;
    extern color MovingAvergeColor = clrDarkGoldenrod;
    
    extern color fiftyPercentLineColor=clrAliceBlue;
    
    int lookBack=PeriodsInMajorSwing*2;
    
    double majorSwingHigh[];
    double minorSwingHigh[];
    double majorSwingLow[];
    double minorSwingLow[];
    double EMA[];
    
    //+------------------------------------------------------------------+
    //| Custom indicator initialization function |
    //+------------------------------------------------------------------+
    int OnInit()
    {
    //--- indicator buffers mapping
    SetIndexBuffer(0,majorSwingHigh); //associates array with buffer
    SetIndexStyle(0,DRAW_ARROW,EMPTY,MajorSwingSize,MajorSwingColor);
    SetIndexArrow(0,108); // drawing wingding 108
    SetIndexLabel(0,"Major Swing High");
    
    SetIndexBuffer(1,minorSwingHigh); //associates array with buffer
    SetIndexStyle(1,DRAW_ARROW,EMPTY,MinorSwingSize,MinorSwingColor);
    SetIndexArrow(1,108); // drawing wingding 108
    SetIndexLabel(1,"Minor Swing High");
    
    SetIndexBuffer(2,majorSwingLow); //associates array with buffer
    SetIndexStyle(2,DRAW_ARROW,EMPTY,MajorSwingSize,MajorSwingColor);
    SetIndexArrow(2,108); // drawing wingding 108
    SetIndexLabel(2,"Major Swing Low");
    
    SetIndexBuffer(3,minorSwingLow); //associates array with buffer
    SetIndexStyle(3,DRAW_ARROW,EMPTY,MinorSwingSize,MinorSwingColor);
    SetIndexArrow(3,108); // drawing wingding 108
    SetIndexLabel(3,"Minor Swing Low");
    
    SetIndexBuffer(4,EMA); //associates array with buffer
    SetIndexStyle(4,DRAW_LINE,STYLE_SOLID,EMPTY,MovingAvergeColor);
    SetIndexLabel(4,"Moving Average");
    
    
    
    //---
    return(INIT_SUCCEEDED);
    }
    //+------------------------------------------------------------------+
    //| Custom indicator iteration function |
    //+------------------------------------------------------------------+
    int OnCalculate(const int rates_total,
    const int prev_calculated,
    const datetime &time[],
    const double &open[],
    const double &high[],
    const double &low[],
    const double &close[],
    const long &tick_volume[],
    const long &volume[],
    const int &spread[])
    {
    
    int limit;
    int counted_bars=IndicatorCounted();
    //---- check for possible errors
    if(counted_bars<0) return(-1);
    //---- the last counted bar will be recounted
    //if(counted_bars>0) counted_bars--;
    limit=Bars-counted_bars;
    //---- main loop
    // First Run Through Rule
    if(counted_bars==0)
    {
    if(lookBack>=MovingAveragePeriods)
    {
    limit-=lookBack;
    }
    else
    {
    limit-=MovingAveragePeriods;
    }
    }
    
    
    
    //---
    for(int i=1; i<limit; i++)
    {
    // Draw Moving Average
    EMA[i]=iMA(NULL,0,MovingAveragePeriods,0,MovingAveragMethod,PRICE_CLOSE,i);
    
    // Minor Swing High Logic
    if(iHighest(NULL,0,MODE_HIGH,PeriodsInMinorSwing*2,i)==i+PeriodsInMinorSwing)
    {
    minorSwingHigh[i+PeriodsInMinorSwing]=High[i+PeriodsInMinorSwing];
    }
    
    // Major Swing High Logic
    if(iHighest(NULL,0,MODE_HIGH,PeriodsInMajorSwing*2,i)==i+PeriodsInMajorSwing)
    {
    majorSwingHigh[i+PeriodsInMajorSwing]=High[i+PeriodsInMajorSwing];
    }
    
    // Minor Swing Low Logic
    if(iLowest(NULL,0,MODE_LOW,PeriodsInMinorSwing*2,i)==i+PeriodsInMinorSwing)
    {
    minorSwingLow[i+PeriodsInMinorSwing]=Low[i+PeriodsInMinorSwing];
    }
    
    // Major Swing Low Logic
    if(iLowest(NULL,0,MODE_LOW,PeriodsInMajorSwing*2,i)==i+PeriodsInMajorSwing)
    {
    majorSwingLow[i+PeriodsInMajorSwing]=Low[i+PeriodsInMajorSwing];
    }
    
    }
    //--- return value of prev_calculated for next call
    return(rates_total);
    }
    //+------------------------------------------------------------------+
    lastmanstandingindicatorv11.mq4 gbpusd-d1-real-trade-lastmanstandingindicatorv11.png gbpusd-d1-real-trade-lastmanstandingindicatorv11.png
    #51337 quote
    salvo64
    Participant
    Junior

    Salve, ho cercato di allegare file pdf con stampa su grafico dell’indicatore ma non me lo fa inviare. Qual’è la procedura corretta ?

    Salvo

    #51342 quote
    salvo64
    Participant
    Junior

    Salve Nicolas allego grafico con indicatore. Salvo

    #51348 quote
    Nicolas
    Keymaster
    Master

    Ho trovato tutto ciò che mi serve sul web. Ti preghiamo di allegare immagini la prossima volta (.png o .jpg), meglio di PDF! anche il file .mq4, grazie.

    #51355 quote
    salvo64
    Participant
    Junior

    Avevo allegato il file .mq4 ed avevo anche visualizzato il messaggio, ma è sparito. Ho provato anche senza successo ad allegare file pdf e png ma senza risultato. Comunque grazie, resto in attesa di notizie. Salvo

    #51389 quote
    Nicolas
    Keymaster
    Master

    Speso quasi tutta la mattina in questa traduzione di codice .. difficile fare le cose uguali a mt4 (mancanza di array e infinito loop ..). Cercherò di finire in seguito, mi dispiace per il ritardo.

    #51393 quote
    salvo64
    Participant
    Junior

    Ciao Nicolas, non è assolutamente un problema. Non ho alcuna fretta, puoi prendere tutto il tempo che occorre, sempre che sia possibile la traduzione del codice su PRT. Grazie tante e scusami ancora se non sono riuscito a caricare il codice .mq4 come indicato, evidente che sono una frana. Ciao Salvo

    #52668 quote
    Nicolas
    Keymaster
    Master

    Non era così facile e nonostante alcune piccole differenze con il codice originale, ho deciso di rilasciarlo. Lo troverai per scaricare nella nostra libreria:

    Swing indicator

    lastmanstanding-swing-trading-indicator.png lastmanstanding-swing-trading-indicator.png
    #52708 quote
    salvo64
    Participant
    Junior

    Grazie Nicolas, sei un grande. Funziona perfettamente. Salvo

    #52770 quote
    elanoa
    Participant
    Junior

    Ho provato questo indicatore in piattaforma…davvero interessante e molto simile ad un’indicatore di Metatrader4 di cui non dispongo purtroppo il codice ( si chiama trading-signals). Volevo chiedere al sig. Nicolas se era possibile ottimizzarlo…senza la visualizzazione della media EMA  e se era possibile inoltre solo la visualizzazione delle indicazioni cerchi viola ( magari sostituendo i cerchi con delle frezzie). Grazie.

Viewing 10 posts - 1 through 10 (of 10 total)
  • You must be logged in to reply to this topic.

LastManStandingIndicator


ProBuilder: Indicatori & Strumenti Personalizzati

New Reply
Author
author-avatar
salvo64 @salvo64 Participant
Summary

This topic contains 9 replies,
has 3 voices, and was last updated by elanoa
8 years, 4 months ago.

Topic Details
Forum: ProBuilder: Indicatori & Strumenti Personalizzati
Language: Italian
Started: 11/02/2017
Status: Active
Attachments: 3 files
Logo Logo
Loading...