Serwis Forex-nawigator.biz korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.
Możesz określić warunki przechowywania lub dostępu do plików cookies w Twojej przeglądarce. [Zamknij tą informację]

Dzisiaj jest 21 lis 2018, 09:46     Inwestuj z zaufanym, globalnym brokerem XM!



Baza danych

O jezykach programowania w platformach i nie tylko.
  • Autor
  • Wiadomość
Offline

krzem78

Stały bywalec

Stały bywalec

  • Posty: 59
  • Rejestracja: 15 maja 2011, 17:18

Baza danych

Nieprzeczytany post03 cze 2018, 08:35

Chciałbym utworzyć plik / pliki excela, w którym znajdowałyby się dane historyczne z par walutowych:
- open/close/high/low dla świeczek m15, m30, h1, h4, d1

Idealnie gdyby dane same się aktualizowały w arkuszu lub poprzez kliknięcie "update".

Czy zna ktoś z Was jakiś sposób?
Offline

MaximusFX

Uczestnik

Uczestnik

  • Posty: 2
  • Rejestracja: 18 wrz 2018, 09:20

Re: Baza danych

Nieprzeczytany post18 wrz 2018, 10:23

też chce zrobić eksport do excela.
Może do Accessa jeszcze uzgodnie to z kumplem który ma vb i SQL bardziej opanowany, gdzie lepiej dane będzie przeglądać i sortować.
Zależy mi na wycinkach czasowych, chcę np sprawdzić jak przez ostatni rok chodził dax między np. 9-10,30
pogrupowane dniami tygodnia
powinno to wyglądać tak wycinki 1,5h
data - dzień pn (i wykres~)~~~~~~~~~~~~
data - dzień wt ~~~~~~~~~~~~


na początku trzeba je wyeksportować tak żeby excel ładnie świece zrobił
a wymaga aby:

aby utworzyć wykres giełdowy Uporządkuj dane na arkuszu w następującej kolejności cena najwyższa cena najniższa cena zamknięcia Użyj zatrudnia giełdowych jako etykiety



od jednego z forumowiczów znalazłem taki kod
http://fxcraft.biz/baza-wiedzy/mt4-i-ek ... -do-pliku/

void export() {

string file="export_"+Symbol()+"_"+Period()+".csv";
int f=FileOpen(file,FILE_CSV|FILE_WRITE,",");

if(f<1) {
Alert("Błąd otwierania pliku");
return(0);
}

for(int i=0;i<Bars;i++) {
FileWrite(f,TimeToStr(Time[i],TIME_DATE|TIME_MINUTES),
Open[i],High[i],Low[i],Close[i]);
}

Alert("Eksport "+Symbol()+" zakończony. Wyeksportowano "+Bars+" rekordów");

FileFlush(f);
FileClose(f);

}


do export do excela,
ale jak go zaimplementować w Mt4 lub 5, , w jakim pliku to zapisać i gdzie ten plik umieścić , może ktoś podpowie?
Offline

-rookie-

Maniak

Maniak

  • Posty: 2436
  • Rejestracja: 13 kwie 2015, 18:00

Re: Baza danych

Nieprzeczytany post18 wrz 2018, 11:23

1. Wchodzisz w MT4 i odpalasz pasek testera na dole a potem przechodzisz do kreatora EA https://images92.fotosik.pl/39/983a85c6d0f63fc7.png
2. Klikasz na tej liście ze wskaźnikami i EA na Create in MetaEditor
3. Wklejasz ten kod do tego pustego pliku, zastępujesz ten wygenerowany czysty kod EA
Kod: Zaznacz cały
//+------------------------------------------------------------------+
//|                                     ExportFile18092018TestEA.mq4 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   _export();
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   
  }
//+------------------------------------------------------------------+

void _export() {

   string file="export_"+Symbol()+"_"+Period()+".csv";
   int f=FileOpen(file,FILE_CSV|FILE_WRITE,",");

   if(f<1) {
    Alert("Błąd otwierania pliku");
    return;
   }

   for(int i=0;i<Bars;i++) {
      FileWrite(f,TimeToStr(Time[i],TIME_DATE|TIME_MINUTES),
                  Open[i],High[i],Low[i],Close[i]);
   }

   Alert("Eksport "+Symbol()+" zakończony. Wyeksportowano "+Bars+" rekordów");

   FileFlush(f);
   FileClose(f);

}

4. Puszczasz test... i zatrzymujesz od razu.
5. Plik zapisuje się pod Windowsem gdzieś w tych folderach, tam gdzie masz w AppData folder dla plikó MT4 gdzie się wrzuca wskaźniki
C:\Users\(home folder)\AppData\Roaming\MetaQuotes\Terminal\A24505C************************4C\tester\files


LUB PO PROSTU WRZUCASZ EA NA WYKRES LIVE, na bieżący wykres, wyskakuje Alert i plik zapisuje się w tej ścieżce
C:\Users\(home folder)\AppData\Roaming\MetaQuotes\Terminal\A24505C*********A195FD144C\MQL4\Files

-- Dodano: 18 wrz 2018, 12:31 --

W sumie moglibyście to podbić i opisać skoro fxcraft dał rozwiązanie, żeby potem inni nie szukali.
Offline

MaximusFX

Uczestnik

Uczestnik

  • Posty: 2
  • Rejestracja: 18 wrz 2018, 09:20

Re: Baza danych

Nieprzeczytany post18 wrz 2018, 22:20

super, dzięki za odpowiedź,
dobrze opisane, teraz to rozumiem, faktycznie przydało by się opisać ,

wcześniej wrzucałem na wykres, kopiując go do różnych folderów, i też do 'script' ale nie działał
wywala

2018.09.18 22:07:04.522 cannot open file 'C:\Users\.......pData\Roaming\MetaQuotes\Terminal\......\Scripts\ToExcel.ex4' [2]



robię w/g wskazówek i dalej nie działa

2018.09.18 21:36:20.614 Tester: cannot load Experts\1excel22
2018.09.18 21:36:20.614 cannot open file 'C:\Users\...\AppData\Roaming\MetaQuotes\Terminal\.....FC1E5CF75\MQL4\Experts\1excel22.ex4' [2]


a w samym edytorze o uruchomieniu wywala

'1excel22.mq4' 1excel22.mq4 1 1
'export' - unexpected token 1excel22.mq4 3 6
'(' - name expected 1excel22.mq4 3 12
'file' - undeclared identifier 1excel22.mq4 6 16
'if' - expressions are not allowed on a global scope 1excel22.mq4 8 1
'for' - expressions are not allowed on a global scope 1excel22.mq4 13 1
'Alert' - declaration without type 1excel22.mq4 18 1
'FileFlush' - declaration without type 1excel22.mq4 20 1
'FileClose' - declaration without type 1excel22.mq4 21 1
')' - expressions are not allowed on a global scope 1excel22.mq4 23 1
9 error(s), 0 warning(s) 10 1



Nie mam pojęcia co to może być że nie może pliku załadować
zmieniłem uprawnienia w w10 że plik może każdy edytować ,
prog uruchamiałem jak admin.
oczywiście plik tam jest i w momencie uruchamiania w edytorze jest zamknięty
może druga instancja mt4 blokuje, ale przecież mają swoje podfoldery
Offline

-rookie-

Maniak

Maniak

  • Posty: 2436
  • Rejestracja: 13 kwie 2015, 18:00

Re: Baza danych

Nieprzeczytany post19 wrz 2018, 10:07

Nie grzebałem do tej pory z zapisywaniem plików na MT4, za bardzo nie ogarniam tego.
Może spróbuj dodać nowy indykator i wklej ten kod do wygenerowanego pliku.
I wtedy wrzuć na wykres zamiast EA indykator.
Kod: Zaznacz cały
//+------------------------------------------------------------------+
//|                                     jsdsakfh13jhj13b51352135.mq4 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping

   _export();
   
   Print( TerminalInfoString(TERMINAL_DATA_PATH) ); // zakladce EXPERTS na dolnym panelu wyświetli sciezke do folderu MT4
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

void _export() {

   string file="export_"+Symbol()+"_"+Period()+".csv";
   FileDelete(file);
   int f=FileOpen(file,FILE_CSV|FILE_WRITE,",");

   if(f<1) {
    Alert("Błąd otwierania pliku");
    return;
   }

   for(int i=0;i<Bars;i++) {
      FileWrite(f,TimeToStr(Time[i],TIME_DATE|TIME_MINUTES),
                  Open[i],High[i],Low[i],Close[i]);
   }

   Alert("Eksport "+Symbol()+" zakończony. Wyeksportowano "+Bars+" rekordów");

   FileFlush(f);
   FileClose(f);

}


Poza tym nie wiem jak jest rozwiązany dostęp do plików w Win 10, nie wiem jak przestwić chmod na folderach z poziomu MT4, nie wiem jak zmienić uprawnienia do zapis w Win10 itd. Nic nie wiem o Win10 niestety bo go nie miałem nigdy. Więc ja w tej kwestii nie pomoge.

Poza tym mogłeś podać kod który wrzucasz bo jeśli coś zmieniłeś to może to jest pochodna tych zmian które tam wprowadziłeś do tego kodu co wkleiłem.

Coś widzę że mają problemy inni z Edytorem MT4 https://www.mql5.com/en/forum/68197 i np tutaj ktoś napisał że wystarczy zastąpić plik edytora tym tutaj ale nie wiem co tam w tym pliku jest więc nie będę kombinował https://www.forex.in.rs/metatrader-ex4- ... de-solved/

Chyba tyle mogłem pomóc tutaj.
Offline

grzesq

Stały bywalec

Stały bywalec

  • Posty: 23
  • Rejestracja: 10 lip 2009, 15:57

Re: Baza danych

Nieprzeczytany post19 wrz 2018, 13:48

Co za czasów dożyłem. Z tego co piszecie wyglada ze program "Windowsy" lepiej działa na Linuxie niż na Win. Niestety też nie pomogę mogę tylko napisać że pod linuxem działa.

Wróć do Programowanie

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 6 gości