ma perché ObjectCreate(_Symbol, "supportLine",OBJ_HLINE,0,pArray[candleLow].time,pArray[candleLow].low, pArray[0].time,pArray[0].low); ?
abbastanza ObjectCreate(_Symbol, "supportLine",OBJ_HLINE,0,pArray[candleLow].time,pArray[candleLow].low);
abbastanza ObjectCreate(_Symbol, "supportLine",OBJ_HLINE,0,pArray[candleLow].time,pArray[candleLow].low);
MetaQuotes:
È stato pubblicato l'articolo"Come lavorare con le linee utilizzando gli strumenti MQL5":
Autore: Mohamed Abdelmaaboud
Questo è un articolo interessante per i principianti, ma per il corretto funzionamento degli Expert Advisor è necessaria una piccola modifica dei codici.
Saluti, Vladimir.
//+------------------------------------------------------------------+ //|Sistema UpwardTrendline.mq5 | //+------------------------------------------------------------------+ void OnTick() { int candles = (int)ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0); double pLow[]; ArraySetAsSeries(pLow,true); int copy_low = CopyLow(_Symbol,_Period,0,candles,pLow); if(copy_low>0) { int candleLow = ArrayMinimum(pLow,0,candles); MqlRates pArray[]; ArraySetAsSeries(pArray,true); int Data = CopyRates(_Symbol,_Period,0,candles,pArray); ObjectDelete(0,"UpwardTrendline"); ObjectCreate(0,"UpwardTrendline",OBJ_TREND,0,pArray[candleLow].time,pArray[candleLow].low, pArray[0].time,pArray[0].low); ObjectSetInteger(0,"UpwardTrendline",OBJPROP_COLOR,Blue); ObjectSetInteger(0,"UpwardTrendline",OBJPROP_STYLE,STYLE_SOLID); ObjectSetInteger(0,"UpwardTrendline",OBJPROP_WIDTH,3); ObjectSetInteger(0,"UpwardTrendline",OBJPROP_RAY_RIGHT,true); } } //+------------------------------------------------------------------+
//+------------------------------------------------------------------+ //|Sistema DownwardTrendline.mq5 | //+------------------------------------------------------------------+ void OnTick() { int candles = (int)ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0); double pHigh[]; ArraySetAsSeries(pHigh,true); int copy_high = CopyHigh(_Symbol,_Period,0,candles,pHigh); if(copy_high>0) { int candleHigh = ArrayMaximum(pHigh,0,candles); MqlRates pArray[]; ArraySetAsSeries(pArray,true); int Data = CopyRates(_Symbol,_Period,0,candles,pArray); ObjectDelete(0,"DnwardTrendline"); ObjectCreate(0,"DnwardTrendline",OBJ_TREND,0,pArray[candleHigh].time,pArray[candleHigh].high, pArray[0].time,pArray[0].high); ObjectSetInteger(0,"DnwardTrendline",OBJPROP_COLOR,Blue); ObjectSetInteger(0,"DnwardTrendline",OBJPROP_STYLE,STYLE_SOLID); ObjectSetInteger(0,"DnwardTrendline",OBJPROP_WIDTH,3); ObjectSetInteger(0,"DnwardTrendline",OBJPROP_RAY_RIGHT,true); } } //+------------------------------------------------------------------+
//+------------------------------------------------------------------+ //|Sistema di linea di supporto.mq5 | //+------------------------------------------------------------------+ void OnTick() { int candles = (int)ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0); double pLow[]; ArraySetAsSeries(pLow,true); int copy_low = CopyLow(_Symbol,_Period,0,candles,pLow); if(copy_low>0) { int candleLow = ArrayMinimum(pLow,0,candles); MqlRates pArray[]; ArraySetAsSeries(pArray,true); int Data = CopyRates(_Symbol,_Period,0,candles,pArray); ObjectDelete(0,"supportLine"); ObjectCreate(0,"supportLine",OBJ_HLINE,0,pArray[candleLow].time,pArray[candleLow].low, pArray[0].time,pArray[0].low); ObjectSetInteger(0,"supportLine",OBJPROP_COLOR,Green); ObjectSetInteger(0,"supportLine",OBJPROP_STYLE,STYLE_SOLID); ObjectSetInteger(0,"supportLine",OBJPROP_WIDTH,3); ObjectSetInteger(0,"supportLine",OBJPROP_RAY,true); } } //+------------------------------------------------------------------+
//+------------------------------------------------------------------+ //|Sistema di linee di resistenza.mq5 | //+------------------------------------------------------------------+ void OnTick() { int candles=(int)ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0); double pHigh[]; ArraySetAsSeries(pHigh,true); int copy_high = CopyHigh(_Symbol,_Period,0,candles,pHigh); if(copy_high>0) { int candleHigh = ArrayMaximum(pHigh,0,candles); MqlRates pArray[]; ArraySetAsSeries(pArray,true); int Data = CopyRates(_Symbol,_Period,0,candles,pArray); ObjectDelete(0,"resistanceLine"); ObjectCreate(0,"resistanceLine",OBJ_HLINE,0,pArray[candleHigh].time,pArray[candleHigh].high, pArray[0].time,pArray[0].high); ObjectSetInteger(0,"resistanceLine",OBJPROP_COLOR,Red); ObjectSetInteger(0,"resistanceLine",OBJPROP_STYLE,STYLE_SOLID); ObjectSetInteger(0,"resistanceLine",OBJPROP_WIDTH,3); ObjectSetInteger(0,"DnwardTrendline",OBJPROP_RAY_RIGHT,true); } } //+------------------------------------------------------------------+
Il modo in cui avete disegnato la linea è molto bello. Un'osservazione sulle linee di tendenza: non serve a molto se il secondo punto di ancoraggio è sempre la barra 0 dell'indice, perché ad ogni nuova barra la linea di tendenza viene aggiornata e quindi la linea di tendenza non serve a nulla. L'ideale sarebbe definire il secondo punto di ancoraggio in base a un criterio specifico. Ad esempio, la seconda barra con il prezzo più alto, con una distanza minima di 30 barre dalla prima, oppure prendere la barra con il prezzo più alto del giorno successivo, e così via.
Complimenti per l'articolo.
Complimenti per l'articolo.
Andrei Pereira linee di tendenza: non serve a molto se il secondo punto di ancoraggio è sempre la barra 0 dell'indice, perché ad ogni nuova barra la linea di tendenza viene aggiornata e quindi la linea di tendenza non serve a nulla. L'ideale sarebbe definire il secondo punto di ancoraggio in base a un criterio specifico. Ad esempio, la seconda barra con il prezzo più alto, ad almeno 30 barre di distanza dalla prima, oppure prendere la barra con il prezzo più alto del giorno successivo, e così via.
Complimenti per l'articolo.
Complimenti per l'articolo.
Grazie per il suo commento, è un'ottima osservazione.

Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Il nuovo articolo Come gestire le linee utilizzando MQL5 è stato pubblicato:
In questo articolo, troverete il modo di gestire le linee più importanti come le trend line, supporto e resistenza con MQL5.
Possiamo utilizzare la Trend line nel trading piazzando i nostri ordini in base al tipo di linea di tendenza. Se c'è una trend line al rialzo, possiamo aspettarci che il prezzo si muova verso il basso per testare questa linea di tendenza dall'alto per poi rimbalzare verso l'alto e quindi piazzare il nostro ordine di acquisto intorno a questa trend line. Viceversa, se c'è una trend line discendente, è possibile che il prezzo si muova verso l'alto per testare questa linea di tendenza dal basso per poi rimbalzare verso il basso e quindi piazzare il nostro ordine di vendita o short intorno a questa trend line discendente.
Quanto seguente è per la Trend line ascendente:
Autore: Mohamed Abdelmaaboud