Forse dovresti specificare cosa vuoi ottenere alla fine
Nell'esempio qui sopra, la linea è disegnata usando il buffer dell'indicatore per tutta la lunghezza della storia. Dovrebbe essere limitato solo alle ultime 20 battute. Cioè, quando appare una nuova barra, la linea viene estesa a destra e accorciata a sinistra, in modo che la sua lunghezza sia sempre uguale a 20 barre.
Non capisco bene cosa sto scrivendo nel codice, ma continuo a vedere lo stesso numero sullo schermo, anche se quando sposto il cursore sulla linea, vedo i gradi cambiare.
Questa funzione imposta l'oggetto OBJ_TRENDBYANGLE per l'angolo di pendenza nel grafico corrente. cl - Colore dell'oggetto TRENDBYANGLE. Parametro richiesto. nm - Nome dell'oggetto. Quando viene passato il valore predefinito - "", il tempo di apertura della barra corrente viene usato come nome. t1 - Prima coordinata del tempo di impostazione dell'oggetto. Valore predefinito - 0 - tempo di apertura della decima barra. p1 - Prima coordinata dell'oggetto che fissa il prezzo. Valore predefinito - 0 - minimo della decima barra. t2 - Seconda coordinata del tempo di impostazione dell'oggetto. Valore predefinito - 0 - tempo aperto della barra corrente. p2 - Seconda coordinata dell'oggetto che fissa il prezzo. Questo parametro è una specie di interruttore. Il suo valore diverso da zero equipara questa funzione a SetTLine(), cioè una linea di tendenza sarà disegnata usando la coppia di coordinate tempo/prezzo, mentre il valore dell'angolo di pendenza della linea di tendenza sarà ignorato. Valore predefinito - 0 - costruzione della linea di tendenza per angolo di pendenza. an - Angolo di pendenza in gradi. Valore predefinito - 0 - Linea orizzontale. ry - Flag della proprietà BOW. Il valore predefinito è False. st - Stile di linea. I valori validi sono STYLE_SOLID (default), STYLE_DASH, STYLE_DOT, STYLE_DASHDOT. wd - Larghezza della linea. Il valore predefinito è 1.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 12.10.2007 |//| Описание : Установка объекта OBJ_TRENDBYANGLE трендовая линия по углу |//+----------------------------------------------------------------------------+//| Параметры: |//| cl - цвет линии |//| nm - наименование ( "" - время открытия текущего бара) |//| t1 - время открытия бара ( 0 - Time[10] |//| p1 - ценовой уровень ( 0 - Low[10]) |//| t2 - время открытия бара ( 0 - время открытия текущего бара) |//| p2 - ценовой уровень ( 0 - по углу) |//| an - угол ( 0 - по умолчанию) |//| ry - луч (False - не луч) |//| st - стиль линии ( 0 - простая линия) |//| wd - ширина линии ( 1 - по умолчанию) |//+----------------------------------------------------------------------------+void SetTLineByAngle(color cl, string nm="",
datetime t1=0, double p1=0, datetime t2=0, double p2=0,
double an=0, bool ry=False, int st=0, int wd=1) {
if (nm=="") nm=DoubleToStr(Time[0], 0);
if (t1<=0) t1=Time[10];
if (p1<=0) p1=Low[10];
if (t2<=0) t2=Time[0];
if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_TRENDBYANGLE, 0, 0,0);
ObjectSet(nm, OBJPROP_TIME1 , t1);
ObjectSet(nm, OBJPROP_PRICE1, p1);
ObjectSet(nm, OBJPROP_TIME2 , t2);
if (p2>0) ObjectSet(nm, OBJPROP_PRICE2, p2);
else ObjectSet(nm, OBJPROP_ANGLE, an);
ObjectSet(nm, OBJPROP_COLOR, cl);
ObjectSet(nm, OBJPROP_RAY , ry);
ObjectSet(nm, OBJPROP_STYLE, st);
ObjectSet(nm, OBJPROP_WIDTH, wd);
}
Buffer di indicatori, poiché in futuro la soluzione non sarà utilizzata solo per le linee rette, ma anche per la media mobile e altre linee.
Forse puoi specificare cosa vuoi ottenere alla fine
Voglio misurare la pendenza del centro e visualizzare come -35 gradi
Che cos'è -35° sul grafico? E se la scala cambia?
Forse dovresti specificare cosa vuoi ottenere alla fine
Nell'esempio qui sopra, la linea è disegnata usando il buffer dell'indicatore per tutta la lunghezza della storia.
Dovrebbe essere limitato solo alle ultime 20 battute. Cioè, quando appare una nuova barra, la linea viene estesa a destra e accorciata a sinistra, in modo che la sua lunghezza sia sempre uguale a 20 barre.
Non capisco bene cosa sto scrivendo nel codice, ma continuo a vedere lo stesso numero sullo schermo, anche se quando sposto il cursore sulla linea, vedo i gradi cambiare.
ObjectDelete("TremdLineAverage");
ObjectCreate("TremdLineAverage", OBJ_TRENDBYANGLE,0,0,0,0,0,0); // ------------------------- coordinate della trendline 2
ObjectSet ("TremdLineAverage", OBJPROP_WIDTH, HirinaUgolAverage); // ---------------------------------------- Larghezza
ObjectSet ("TremdLineAverage", OBJPROP_COLOR, colUgolAverage); // --------------------------------------------- Colore
ObjectSet ("TremdLineAverage", OBJPROP_TIME1 ,Time[1]); // ------------------------------- 1 coordinata temporale
ObjectSet ("TremdLineAverage", OBJPROP_TIME2 ,Time[0]); // ------------------------------- 1 coordinata temporale
ObjectSet ("TremdLineAverage", OBJPROP_PRICE1,UgolAverage1_1); // ----------------------------- 1 coordinata del prezzo
ObjectSet ("TremdLineAverage", OBJPROP_PRICE2,UgolAverage1_0); // ----------------------------- 2 coordinate di prezzo
ObjectSet ("TremdLineAverage", OBJPROP_RAY, 15); Ugol=15;
ObjectCreate("TremdLineAverage", OBJ_TRENDBYANGLE,0,0,0,0,0,0); // ------------------------- coordinate della trendline 2
ObjectSet ("TremdLineAverage", OBJPROP_WIDTH, HirinaUgolAverage); // ---------------------------------------- Larghezza
ObjectSet ("TremdLineAverage", OBJPROP_COLOR, colUgolAverage); // --------------------------------------------- Colore
ObjectSet ("TremdLineAverage", OBJPROP_TIME1 ,Time[1]); // ------------------------------- 1 coordinata temporale
ObjectSet ("TremdLineAverage", OBJPROP_TIME2 ,Time[0]); // ------------------------------- 1 coordinata temporale
ObjectSet ("TremdLineAverage", OBJPROP_PRICE1,UgolAverage1_1); // ----------------------------- 1 coordinata del prezzo
ObjectSet ("TremdLineAverage", OBJPROP_PRICE2,UgolAverage1_0); // ----------------------------- 2 coordinate di prezzo
ObjectSet ("TremdLineAverage", OBJPROP_ANGLE, 15); Ugol=15;
Grazie per il vostro feedback.
Una funzione già pronta, provatela.
La funzione SetTLineByAngle().
Questa funzione imposta l'oggetto OBJ_TRENDBYANGLE per l'angolo di pendenza nel grafico corrente.
cl - Colore dell'oggetto TRENDBYANGLE. Parametro richiesto.
nm - Nome dell'oggetto. Quando viene passato il valore predefinito - "", il tempo di apertura della barra corrente viene usato come nome.
t1 - Prima coordinata del tempo di impostazione dell'oggetto. Valore predefinito - 0 - tempo di apertura della decima barra.
p1 - Prima coordinata dell'oggetto che fissa il prezzo. Valore predefinito - 0 - minimo della decima barra.
t2 - Seconda coordinata del tempo di impostazione dell'oggetto. Valore predefinito - 0 - tempo aperto della barra corrente.
p2 - Seconda coordinata dell'oggetto che fissa il prezzo. Questo parametro è una specie di interruttore. Il suo valore diverso da zero equipara questa funzione a SetTLine(), cioè una linea di tendenza sarà disegnata usando la coppia di coordinate tempo/prezzo, mentre il valore dell'angolo di pendenza della linea di tendenza sarà ignorato. Valore predefinito - 0 - costruzione della linea di tendenza per angolo di pendenza.
an - Angolo di pendenza in gradi. Valore predefinito - 0 - Linea orizzontale.
ry - Flag della proprietà BOW. Il valore predefinito è False.
st - Stile di linea. I valori validi sono STYLE_SOLID (default), STYLE_DASH, STYLE_DOT, STYLE_DASHDOT.
wd - Larghezza della linea. Il valore predefinito è 1.