Avviso nell’indicatore. Come inserire un avviso e una freccia nell’indicatore?

Lavorare con Telegram in MetaTrader. Canali e bot di Telegram
I miei segreti di Autolot. Lot dinamico o Autolot.
Lavorare con Telegram in MetaTrader. Canali e bot di Telegram
I miei segreti di Autolot. Lot dinamico o Autolot.

Descrizione

Avviso: Le query più frequenti nei motori di ricerca e gli argomenti popolari sui forum spesso includono le seguenti frasi.

Un avviso su tali argomenti può aiutarti a rimanere aggiornato con le ultime tendenze.

  • Indicatore di avviso
  • Come aggiungere un segnale sonoro all’indicatore?
  • Aiutami a inserire un segnale sonoro nell’indicatore
  • Come inserire Avvisi e Frecce
  • Come inviare un messaggio via email o telefono quando il segnale proviene da un indicatore?

In questo articolo, descriverò in dettaglio un modo semplice per aggiungere notifiche Avviso, Email, Push e Freccia a qualsiasi indicatore utilizzando codice aggiuntivo disponibile su Expforex.

  

Prefazione 

Per installare correttamente Avvisi nel tuo indicatore, devi avere il codice open-source del tuo indicatore. 

Il codice decompilato è indesiderato perché, per i principianti, il codice decompilato fornisce informazioni minime. È difficile da capire. 

Potresti anche incontrare problemi con la compilazione dopo la modifica. 

xCustomEA

Se stai cercando un modo più semplice per automatizzare la tua strategia di trading senza immergerti in complesse programmazioni personalizzate, considera xCustomEA.

Questo expert advisor di Expforex è progettato per funzionare perfettamente con indicatori che generano segnali a freccia. Con xCustomEA, puoi facilmente automatizzare qualsiasi indicatore che mostra frecce di acquisto o vendita, permettendoti di creare una potente strategia automatizzata senza il fastidio di sviluppare codice personalizzato.

xCustomEA rende incredibilmente accessibile l’automazione delle strategie basate sui segnali degli indicatori. Permette ai trader di concentrarsi sull’ottimizzazione del loro trading invece di spendere tempo e risorse nella programmazione personalizzata. Questo expert advisor serve come un’eccellente alternativa all’assunzione di un programmatore, offrendo una soluzione semplice per trasformare i segnali degli indicatori in operazioni di trading.

Per ulteriori informazioni, visita la pagina di xCustomEA o esplora gli altri expert advisor di Expforex.

Inizio del Lavoro per inserire un Avviso

   Innanzitutto, devi determinare quali buffer dell’indicatore forniscono segnali specifici, lo scopo della creazione di un avviso e le condizioni per determinare il segnale sull’indicatore. 

Importante: Solo i buffer esterni definiti all’inizio del codice delle variabili possono essere visualizzati negli indicatori: 

#property indicator_buffers 1

Tuttavia, l’indicatore può anche contenere buffer nascosti, che vengono impostati nella funzione init() e dichiarati come variabili:

IndicatorBuffers(7): Abbiamo bisogno solo dei primi buffer. 

Se, ad esempio, hai 1 buffer esterno, allora guarda la variabile: 

SetIndexBuffer(0, SarBuffer);
  • 0 è il primo buffer
  • 1 è il secondo buffer

Questi buffer o i loro nomi possono essere identificati passando il mouse su una linea specifica dell’indicatore sul grafico.

Value1 – Questo è il primo buffer o 0 nel sistema di indicizzazione del codice.  

SetIndexBuffer(0, SarBuffer); // The name of the buffer we need  

Se questo è SarBuffer, allora lo utilizzeremo.

Inoltre, è una questione tecnica determinare come verrà attivato il segnale;

Ad esempio, se questa è l’intersezione della linea 0 dalla parte superiore (inferiore) che si muove verso il basso (alto), apparirà così:

SarBuffer[shift+1] >= 0 && SarBuffer[shift] < 0

L’indicatore che incrocia il prezzo corrente o una barra, una rottura di barra da parte dell’indicatore, e così via:

SarBuffer[shift+1] >= Close[shift] && SarBuffer[shift] < Close[shift]

Se questa è l’intersezione di livelli unici, indicatori come gli stocastici:

SarBuffer[shift+1] <= 75 && SarBuffer[shift] > 75;
    
SarBuffer[shift+1] >= 25 && SarBuffer[shift] < 25;

Se ci sono già frecce nel tuo indicatore, allora è possibile anche il seguente tipo di segnale:

DnTrend[1] != EMPTY_VALUE && DnTrend[1] != 0 && UpTrend[2] != EMPTY_VALUE

In ogni caso, devi applicare logica e creatività per registrare correttamente il segnale. Se incontri difficoltà, scrivi a questo thread, allega l’indicatore, mostra le linee sul grafico e descrivi in dettaglio cosa non riesci a fare. Inviare un messaggio come “devi inserire un avviso nell’indicatore” senza spiegare dove e cosa fare, e senza fornire l’indicatore stesso, non è utile. 

Codice “Avvisi e frecce da www.expforex.com”

Il passo successivo per aggiungere il nostro avviso al tuo indicatore consiste in diversi punti:

PASSO 1

Inserisci il seguente codice all’inizio dell’Expert Advisor prima della funzione OnCalculate() (start):

//+==+//+ www.expforex.com edit AlertArrow +//+==+
extern string Alerts="Alerts and arrows from www.expforex.com";
extern bool AlerT=true; // Issue an alert to the screen
extern bool Mail=true; // Send message
extern bool Push=true; // Send PUSH to phone
extern bool Arrow=true; // Put arrows on signals
extern int shift=1; // On which bar to count the signal 0 - on the current one, 1 - on the closed
int timeee;
// Internal variable
string nameInd;
void SetArrow(int cd, color cl, string nm="", datetime t1=0, double p1=0, int sz=3)
{
  if(nm=="")
    nm=DoubleToStr(Time[0], 0);
  if(t1 <= 0)
    t1=Time[0];
  if(p1 <= 0)
    p1=Bid;
  nameInd=WindowExpertName();
  int wind=WindowFind(nameInd);
  wind=0;
  if(ObjectFind(nm) < 0)
    ObjectCreate(nm, OBJ_ARROW, wind, 0, 0);
  ObjectSet(nm, OBJPROP_TIME1, t1);
  ObjectSet(nm, OBJPROP_PRICE1, p1);
  ObjectSet(nm, OBJPROP_ARROWCODE, cd);
  ObjectSet(nm, OBJPROP_COLOR, cl);
  ObjectSet(nm, OBJPROP_WIDTH, sz);
}

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Expforex_AlertArrow(string text="", int arrowdir=0, bool history=false, int i=0)
{
  nameInd=WindowExpertName();
  int wind=WindowFind(nameInd);
  if(wind==-1)
    wind=0;
  ObjectCreate("Originalalert", OBJ_LABEL, wind, 0, 0);
  ObjectSetText("Originalalert", "Modification AlertArrow www.expforex.com", 10, "Arial Bold", Red);
  ObjectSet("Originalalert", OBJPROP_CORNER, 2);
  ObjectSet("Originalalert", OBJPROP_XDISTANCE, 200);
  ObjectSet("Originalalert", OBJPROP_YDISTANCE, 10);
  if(!history)
  {
    if(AlerT)
      Alert(text);
    if(Arrow)
      if(arrowdir==1)
        SetArrow(241, Blue, nameInd + DoubleToStr(Time[shift], 0), Time[shift], Low[shift]);
    if(Arrow)
      if(arrowdir==2)
        SetArrow(242, Red, nameInd + DoubleToStr(Time[shift], 0), Time[shift], High[shift]);
    if(!IsTesting())
      if(Mail)
        SendMail(text, text);
    if(!IsTesting())
      if(Push)
        SendNotification(text);
  }
  if(history)
  {
    if(Arrow)
      if(arrowdir==1)
        SetArrow(241, Blue, nameInd + DoubleToStr(Time[shift + i2], 0), Time[shift + i2], Low[shift + i2]);
    if(Arrow)
      if(arrowdir==2)
        SetArrow(242, Red, nameInd + DoubleToStr(Time[shift + i2], 0), Time[shift + i2], High[shift + i2]);
  }
}//+==+//+ www.expforex.com edit AlertArrow +//+==+

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
  for(int i=ObjectsTotal(); i>=0; i--)
  {
    if(StringFind(ObjectName(i), nameInd)!=-1)
      ObjectDelete(ObjectName(i));
  }
}
//+------------------------------------------------------------------+

PASSO 2

 Prima di chiudere la funzione OnCalculate() inserisci il seguente codice:

return(rates_total); }

Incolla il seguente codice:

//+==+//+ www.expforex.com edit AlertArrow +//+==+
    
nameInd=WindowExpertName();

if(timeee != Time[0] && SarBuffer[shift+1] <= 75 && SarBuffer[shift] > 75)
{
  Expforex_AlertArrow(Symbol() + " " + Period() + nameInd + " UP", 1);
  timeee=Time[0];
}
if(timeee != Time[0] && SarBuffer[shift+1] >= 25 && SarBuffer[shift] < 25)
{
  Expforex_AlertArrow(Symbol() + " " + Period() + nameInd + " DN", 2);
  timeee=Time[0];
}//+==+//+ www.expforex.com edit AlertArrow +//+==+

PASSO 3

Questo codice servirà come nostro segnale.

Naturalmente, devi sostituire parte del codice con il tuo. 

Il seguente codice serve come segnale per un avviso:

1. Intersezione della linea 0 dalla parte superiore (inferiore) che si muove verso il basso (alto), apparirà così:

SarBuffer[shift+1] >= 0 && SarBuffer[shift] < 0

2. L’indicatore che incrocia il prezzo corrente o una barra, una rottura di barra da parte dell’indicatore, e così via:

SarBuffer[shift+1] >= Close[shift] && SarBuffer[shift] < Close[shift]

3. Se questa è l’intersezione di livelli unici, indicatori come gli stocastici:

SarBuffer[shift+1] <= 75 && SarBuffer[shift] > 75;
    
SarBuffer[shift+1] >= 25 && SarBuffer[shift] < 25;

Dopo l’uso

Per aggiungere un segnale sonoro all’indicatore, segui questi passaggi:

  • 1. Apri le impostazioni dell’indicatore.
  • 2. Cerca la sezione “Avviso” o “Frecce“.
  • 3. Seleziona l’opzione per aggiungere un avviso sonoro.
  • 4. Scegli il file audio che desideri utilizzare come avviso.
  • 5. Salva le modifiche.

Inserendo un segnale sonoro nell’indicatore, puoi ricevere una notifica uditiva quando vengono soddisfatte determinate condizioni, il che può aiutarti a prendere decisioni di trading migliori.

Se hai bisogno di frecce nella storia, allora devi fare questo:

Dopo il codice sopra, aggiungi quanto segue:

//+==+//+ www.expforex.com edit AlertArrow +//+==+
    
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
if(counted_bars > 0)
   counted_bars--;
int limit2 = Bars - counted_bars;
for(int i2 = 0; i2 < limit2; i2++) {
    nameInd = WindowExpertName();
    if(SarBuffer[shift+1+i2] <= 75 && SarBuffer[shift+i2] > 75)
    {
        Expforex_AlertArrow(Symbol() + " " + Period() + nameInd + " UP" + i2, 1, true, i2);
    }
    if(SarBuffer[shift+1+i2] >= 25 && SarBuffer[shift+i2] < 25)
    {
        Expforex_AlertArrow(Symbol() + " " + Period() + nameInd + " DN" + i2, 2, true, i2);
    }
}
//+==+//+ www.expforex.com edit AlertArrow +//+==+

Esempi

Questi esempi sono tratti dalla sezione corrispondente del nostro forum. Ho modificato gli indicatori secondo i principi descritti sopra. 

Conclusioni

In questo articolo, ho spiegato il processo di creazione dei segnali per l’indicatore nel modo più dettagliato e comprensibile.

Il codice sopra può essere utilizzato senza restrizioni su qualsiasi indicatore. È importante non cambiare il nome dell’autore quando si aggiunge il codice all’indicatore. 

Se ti è piaciuto questo articolo e hai trovato utile questo metodo di inserimento dei segnali, per favore lascia i tuoi commenti e valuta gli argomenti. 

Barra del Segnale: È Importante Saperlo

Domande?

Se hai domande, per favore falle. Non vendiamo il maiale nel sacco.

Inoltre, ciascuno dei nostri prodotti può essere testato prima dell’acquisto.

Apprezziamo il tuo interesse e il tuo supporto per i nostri prodotti e ci impegniamo a mantenere elevati standard di qualità.

Grazie per essere con noi!

Hai una domanda?

Leave a Reply

Your email address will not be published. Required fields are marked *

This post is also available in: English Українська Portuguese Español Deutsch Chinese Русский Français Italiano Türkçe 日本語 한국어


    Attendere, contattando ...

     

    Avviso di rischio:


    Le performance di trading passate non garantiscono i risultati futuri.

    La negoziazione di valuta estera con margine comporta un elevato grado di rischio e potrebbe non essere adatta a tutti gli investitori.

    Tieni presente che l'utilizzo dei robot di trading comporta un rischio notevole e potresti perdere più del tuo investimento iniziale.

    Ti invitiamo a procedere con cautela, a valutare attentamente la tua situazione finanziaria e a prendere in considerazione l'idea di rivolgerti a un professionista qualificato.

    Esclusione di responsabilità

    Questo sito utilizza i cookie per migliorare la tua esperienza. Utilizzando questo sito accetti la nostra Politica di Protezione dei Dati e Disclaimer.
    Leggi di più