Czy ktoś będzie wstanie powiedzieć dlaczego widze tylko 4 kreski z czasem sesji a nie tyle ile chcę ? Bo chciałbym dodać jeszcze kilka .
*nie wyrzuca błędów
poprawione ... ale to błąd gramatycznyMike_Scofield pisze: Bo Hong Kong wpisałeś przec "Ch"
Kod: Zaznacz cały
#property indicator_separate_window
#property indicator_buffers 8
#property indicator_color1 Gray
#property indicator_width1 3
#property indicator_color2 Lime
#property indicator_width2 3
#property indicator_color3 Red
#property indicator_width3 3
#property indicator_color4 Orange
#property indicator_width4 3
#property indicator_color5 Blue
#property indicator_width5 3
#property indicator_color6 Pink
#property indicator_width6 3
#property indicator_color7 Yellow
#property indicator_width7 3
#property indicator_color8 Gold
#property indicator_width8 3
#property indicator_maximum 9
#property indicator_minimum 0
extern int GMTOffset = 0;
// Buffers
double dFrankfurtBuffer[];
double dLondonBuffer[];
double dNewYorkBuffer[];
double dChicagoBuffer[];
double dSydneyBuffer[];
double dWellingtonBuffer[];
double dTokyoBuffer[];
double dHongkongBuffer[];
int FrankfurtOpen;
int FrankfurtClose;
int LondonOpen;
int LondonClose;
int NewYorkOpen;
int NewYorkClose;
int ChicagoOpen;
int ChicagoClose;
int SydneyOpen;
int SydneyClose;
int WellingtonOpen;
int WellingtonClose;
int TokyoOpen;
int TokyoClose;
int HongkongOpen;
int HongkongClose;
int init() {
IndicatorShortName("");
SetIndexBuffer(0,dFrankfurtBuffer);
SetIndexLabel(0,"Frankfurt");
SetIndexBuffer(1,dLondonBuffer);
SetIndexLabel(1,"London");
SetIndexBuffer(2,dNewYorkBuffer);
SetIndexLabel(2,"New York");
SetIndexBuffer(3,dChicagoBuffer);
SetIndexLabel(3,"Chicago");
SetIndexBuffer(4,dSydneyBuffer);
SetIndexLabel(4,"Sydney");
SetIndexBuffer(5,dWellingtonBuffer);
SetIndexLabel(5,"Wellington");
SetIndexBuffer(6,dTokyoBuffer);
SetIndexLabel(6,"Tokyo");
SetIndexBuffer(7,dHongkongBuffer);
SetIndexLabel(7,"Hongkong");
return(0);
}
int start() {
//set Times
FrankfurtOpen = GMTOffset + 7;
FrankfurtClose = GMTOffset + 16;
LondonOpen = GMTOffset + 8;
LondonClose = GMTOffset + 17;
NewYorkOpen = GMTOffset + 13;
NewYorkClose = GMTOffset + 22;
ChicagoOpen = GMTOffset + 14;
ChicagoClose = GMTOffset + 23;
SydneyOpen = GMTOffset + 22;
SydneyClose = GMTOffset + 7;
WellingtonOpen = GMTOffset + 22;
WellingtonClose= GMTOffset + 6;
TokyoOpen = GMTOffset + 0;
TokyoClose = GMTOffset + 9;
HongkongOpen = GMTOffset + 1;
HongkongClose = GMTOffset + 10;
// Determine number of bars to iterate over
int iBarsToCalc = Bars - IndicatorCounted();
if (iBarsToCalc < Bars) iBarsToCalc++;
// Iterate over bars
for (int i=iBarsToCalc-1;i>=0;i--) {
// Set Frankfurt Line
if (isMarketOpen(FrankfurtOpen, FrankfurtClose, Time[i]))
dFrankfurtBuffer[i] = 8;
else
dFrankfurtBuffer[i] = EMPTY_VALUE;
// Set London Line
if (isMarketOpen(LondonOpen, LondonClose, Time[i]))
dLondonBuffer[i] = 7;
else
dLondonBuffer[i] = EMPTY_VALUE;
// Set NewYork Line
if (isMarketOpen(NewYorkOpen, NewYorkClose, Time[i]))
dNewYorkBuffer[i] = 6;
else
dNewYorkBuffer[i] = EMPTY_VALUE;
// Set Chicago Line
if (isMarketOpen(ChicagoOpen, ChicagoClose, Time[i]))
dChicagoBuffer[i] = 5;
else
dChicagoBuffer[i] = EMPTY_VALUE;
// Set Sydney Line
if (isMarketOpen(SydneyOpen, SydneyClose, Time[i]))
dSydneyBuffer[i] = 4;
else
dSydneyBuffer[i] = EMPTY_VALUE;
// Set Wellington Line
if (isMarketOpen(WellingtonOpen, WellingtonClose, Time[i]))
dWellingtonBuffer[i] = 3;
else
dWellingtonBuffer[i] = EMPTY_VALUE;
// Set Tokyo Line
if (isMarketOpen(TokyoOpen, TokyoClose, Time[i]))
dTokyoBuffer[i] = 2;
else
dTokyoBuffer[i] = EMPTY_VALUE;
// Set Hongkong Line
if (isMarketOpen(HongkongOpen, HongkongClose, Time[i]))
dHongkongBuffer[i] = 1;
else
dHongkongBuffer[i] = EMPTY_VALUE;
}
}
bool isMarketOpen(int iOpenHour, int iCloseHour, datetime timestamp) {
int iBarHour = TimeHour(timestamp);
if (iOpenHour < iCloseHour && (iBarHour >= iOpenHour && iBarHour < iCloseHour))
return(true);
if (iOpenHour > iCloseHour && (iBarHour >= iOpenHour || iBarHour < iCloseHour))
return(true);
return(false);
}