@Asia - pisząc okno miałem na myśli formację. Pisząc okno wykresu miałem na myśli tą część interfejsu w której jest wykres

. Co do alarmów, to może i masz rację, ale chcę sobie trochę zautomatyzować wszystko i na czymś się trzeba uczyć.
@xpep - kod na końcu. Skoro w porównaniu używasz "Point" to pewnie jest w tym jakiś cel ?
@Tig3r - hmmm... zrobiłem to trochę inaczej, dlatego jak byś zerknął byłbym wdzięczny. Użyłem tylko jednej ceny wskaźnika i dwóch cen waluty (z dwóch okresów) - być może pominąłem jakąś możliwość ?. Jeżeli chodzi o formatowanie to rozwiązałeś mój problem

Zamiany na string próbowałem już wcześniej, bez rezultatu, ale zamiana "+" na "," załatwiła sprawę.
Poniżej kod (wycinek). Jest to Vegas 1h, ja chciałem tylko trochę zmodyfikować alarmy bo nie dzwoniły tak jak bym sobie życzył.
Niestety okazało się, że najwyraźniej nic z tego nie rozumiem, dlatego opiszę swoimi słowami, a Wy jeżeli mogę prosić wyprowadźcie mnie z błędu.
Zakładam, że funkcja działa okresowo (co zmiana ceny zapewne), w tym momencie następuje zliczenie ilości świec, które nie uległy zmianie od ostatniego wywołania funkcji (czyli jeżeli okno jest non stop włączone to zmianie ulega tylko jeden słupek, a więc będzie tylko jedna pętla dla for, bo reszta wykresu jest w pamięci). Czyli, jak włączam program po kilku dniach to robi kilkadziesiąt pętli, a reszta wykresu jest ładowana z pamięci (?). Jeżeli mamy więcej słupków to wszystkie odwołania do tablicy z indeksem 0 np. ExtMapBuffer1[0] oznaczają odwołanie się do najświeższych danych ?
W takim razie
j (czyli świca wcześniejsza) powinno się równać i +1, bo "cofamy się do przodu"

(chyba czas spać

)
Kolejna sprawa to to, że zdaje się nie można zrobić porównania np.
if ( 3 > i >1) tylko trzeba if ( 3 > i && i > 1) - straciłem na tym chyba z godzinę
Ogólnie jeszcze nie wiem czy alarm działa tak jak należy. Na pewno do poprawy jest sam fakt że jak już znajdzie się na przecięciu to mam w ciągu minuty kilkanaście takich samych alarmów.
Kod: Zaznacz cały
int start()
{
int limit;
int j;
int counted_bars=IndicatorCounted();
//---- check for possible errors
if(counted_bars<0) return(-1);
//---- last counted bar will be recounted
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
//---- main loop
for(int i=0; i<limit; i++)
{
j = i+1;
//---- ma_shift set to 0 because SetIndexShift called abowe
ExtMapBuffer1[i]=iMA(NULL,0,144,0,MODE_EMA,PRICE_CLOSE,i);
ExtMapBuffer2[i]=iMA(NULL,0,169,0,MODE_EMA,PRICE_CLOSE,i);
//Model #1 34,55,89
if(RiskModel==1)
{
ExtMapBuffer3[i]=ExtMapBuffer2[i]+34*Point;
ExtMapBuffer4[i]=ExtMapBuffer2[i]+55*Point;
ExtMapBuffer5[i]=ExtMapBuffer2[i]+89*Point;
ExtMapBuffer6[i]=ExtMapBuffer2[i]-34*Point;
ExtMapBuffer7[i]=ExtMapBuffer2[i]-55*Point;
ExtMapBuffer8[i]=ExtMapBuffer2[i]-89*Point;
}
Comment("\nRISK MODEL #",RiskModel," (1-4)\n\nEMA144 - ",ExtMapBuffer1[limit],"\nEMA169 - ",ExtMapBuffer2[limit],
"\n\nF+1 - ",ExtMapBuffer3[limit],"\nF+2 - ",ExtMapBuffer4[limit],
"\nF+3 - ",ExtMapBuffer5[limit],"\n\nF-1 - ",ExtMapBuffer6[limit],
"\nF-2 - ",ExtMapBuffer7[limit],"\nF-3 - ",ExtMapBuffer8[limit]);
}
//+--------------------------------------------------------------------------+
//- ALERTS PlaySound("alert.wav"); -
//+--------------------------------------------------------------------------+
if(Alerts && Open[i] > 0)
{
//alram dla przecięcia z liniami tunelu (dla "fibonaciego" analogicznie będzie
if( (MathMax(Close[i],Open[i])>=ExtMapBuffer1[i] && ExtMapBuffer1[i] >= MathMin(Close[i],Open[i]) ) ||
(MathMax(Open[j],Open[i]) >= ExtMapBuffer1[i] && ExtMapBuffer1[i] >= MathMin(Close[j],Close[i]) ) )
{
PlaySound("alleluja.wav");
Alert(Symbol()+ " tunel EMA 144 = " +ExtMapBuffer1[i]+ " [" +Open[j]+ ";" +Close[j]+ "] " + " [" +Open[i]+ ";" +Close[i]+ "] " + TimeHour(Time[j])+ ":" + TimeMinute(Time[j]) + " " + TimeHour(Time[i])+ ":" + TimeMinute(Time[i]) );
}
if( (MathMax(Close[i],Open[i])>=ExtMapBuffer2[i] && ExtMapBuffer2[i] >= MathMin(Close[i],Open[i]) ) ||
(MathMax(Open[j],Open[i]) >= ExtMapBuffer2[i] && ExtMapBuffer2[i] >= MathMin(Close[j],Close[i]) ) )
{
PlaySound("alleluja.wav");
Alert(Symbol() + " tunel EMA 169 = " +ExtMapBuffer2[i]+ " [" +Open[j]+ ";" +Close[j]+ "] " + " [" +Open[i]+ ";" +Close[i]+ "] " + TimeHour(Time[j])+ ":" + TimeMinute(Time[j]) + " " + TimeHour(Time[i])+ ":" + TimeMinute(Time[i]) );
}
}
//---- done
//----
//----
return(0);
}