Cześć,
Mam problem z otwarciem 96 wykresów w tym samym czasie z funkcją ChartOpen Metatradera.
Może ktoś może zaproponować rozwiązanie.
Próbuję otworzyć 96 kart (12 par z 8 TimeFrame). z ChartOpen (), a następnie wykonaj ChartScreenShot.
Ale jeśli funkcja ChartOpen nie powiedzie się raz (po zwrocie zera i z błędem wewnętrznym nr 4024),
nie można ponownie otworzyć tego samego symbolu za pomocą ChartOpen.
Jeśli znasz rozwiązanie gwarantujące otwarcie wszystkich 12 symboli z docenianymi ośmioma ramkami czasowymi.
Poniżej wklejam problem. Na przykład: jeśli ChartOpen (EURUSD, 5) ulegnie awarii, zawsze kończy się niepowodzeniem w następnych próbach.
Symbol jest losowy, 4-5 wykresów w 96 nie można otworzyć z powodu nieznanego błędu.
(O dziwo, wykresy są otwierane, chociaż zwrot jest fałszywy.)
int PTimeFrame [] = {15,15,30,60,240,1440,10080};
string parite [] = {EURUSD, GBPUSD, USDJPY, USDCHF, AUDUSD, USDCAD, EURGBP, EURJPY, GBPJPY, AUDJPY, XAGUSD, XAUUSD};
allcharts [12] [8];/Zainicjowano na zero.
//... poniżej kodu w OnTick.
dla (int k = 0; klt; 12; k ) {//12
for (int pp = 0; pplt; 8; pp ) {//8
if (allcharts [k] [pp] == 0)/otwórz tabelę, jeśli nie jest jeszcze ot.
{
allcharts [k] [pp] = ChartOpen (parite [k], PTimeFrame [pp]);/- Tutaj, jeśli raz zawiedzie, zawsze kończy się niepowodzeniem przy następnych próbach dla niektórych symboli.
if (chartid! = 0) {
ChartScaleSet (3, chartid);
ChartAutoscrollSet (true, chartid);
ChartModeSet (CHART_CANDLES, chartid);
}
}
}