Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   AccountHistory als .csv Datei speichern (http://www.expert-advisor.com/forum/showthread.php?t=1987)

forexAlexPH 27.02.12 06:28

AccountHistory als .csv Datei speichern
 
Hallo,

ich mochte gerne in einem EA, die AccountHistory, der bereits geschlossenen Trades als .csv Datei speichern

Ich habe ein Script gefunden, was das bereits können soll. Aber wenn ich das Script ausführe, finde ich finde das HistoryReport.csv File nirgends. Also wird da wohl ein Fehler im Script sein, aber ich finde nichts.:eek::
Wenn ich hinter die Logik gekommen bin, kann ich das bestimmt umbauen, so dass es im EA auch funktioniert und bei jedem TP das .csv neu schreibt.

Code:

//+------------------------------------------------------------------+
//|                                              Order Auslesen.mq4 |
//|                                        Copyright © 2009, PriNova |
//|                                                  info@prinova.de |
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
static int mPrev;
int m;
// Modified to run as a script
int init()
  {
  mPrev=Minute();
  return(0);
  }
//+------------------------------------------------------------------+
int start()
  {
  int i,handle,hstTotal=HistoryTotal();
  m=Minute();
  if(1==1)
      {
      mPrev=m;
      handle=FileOpen("HistoryReport.csv",FILE_WRITE|FILE_CSV,";");
      if(handle<0) return(0);
      FileWrite(handle,"Account;Broker;Currency;Number;Open;Time;Type;Lots;Symbol;Price;Stop/Loss;Take Profit;Close;Time;Price;Profit;Swap;Comment");
      for(i=0;i<hstTotal;i++)
        {
        if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true)
          {
          FileWrite(handle,AccountNumber(),AccountCompany(), AccountCurrency(),  OrderTicket(),TimeToStr(OrderOpenTime(),TIME_DATE),TimeToStr(OrderOpenTime(),TIME_SECONDS),OrderType(),OrderLots(),OrderSymbol(),OrderOpenPrice(),OrderStopLoss(),OrderTakeProfit(),TimeToStr(OrderCloseTime(),TIME_DATE),TimeToStr(OrderCloseTime(),TIME_SECONDS),OrderClosePrice(),OrderProfit(),OrderSwap(), OrderComment()) ;
          }
        }
      FileClose(handle);
      }
  return(0);
  }
//+------------------------------------------------------------------+


naranjoe 27.02.12 07:22

Das Problem besteht darin, das dass Script prüft ob die Datei vorhanden ist.
Ist sie es nicht (Normal beim ersten Aufruf) wird es beendet.
Ich habe das hier mal geändert:
Code:

//+------------------------------------------------------------------+
//|                                              Order Auslesen.mq4 |
//|                                        Copyright © 2009, PriNova |
//|                                                  info@prinova.de |
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
static int mPrev;
int m;
// Modified to run as a script
int init()
  {
  mPrev=Minute();
  return(0);
  }
//+------------------------------------------------------------------+
int start()
  {
  int i,handle,hstTotal=HistoryTotal();
  m=Minute();
  if(1==1)
      {
      mPrev=m;
      handle=FileOpen("HistoryReport.csv",FILE_WRITE|FILE_CSV,";");
      if(handle<0) handle = FileOpen("HistoryReport.csv",FILE_CSV|FILE_WRITE,';');
      FileWrite(handle,"Account;Broker;Currency;Number;Open;Time;Type;Lots;Symbol;Price;Stop/Loss;Take Profit;Close;Time;Price;Profit;Swap;Comment");
      for(i=0;i<hstTotal;i++)
        {
        if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true)
          {
          FileWrite(handle,AccountNumber(),AccountCompany(), AccountCurrency(),  OrderTicket(),TimeToStr(OrderOpenTime(),TIME_DATE),TimeToStr(OrderOpenTime(),TIME_SECONDS),OrderType(),OrderLots(),OrderSymbol(),OrderOpenPrice(),OrderStopLoss(),OrderTakeProfit(),TimeToStr(OrderCloseTime(),TIME_DATE),TimeToStr(OrderCloseTime(),TIME_SECONDS),OrderClosePrice(),OrderProfit(),OrderSwap(), OrderComment()) ;
          }
        }
      FileClose(handle);
      }
  return(0);
  }
//+------------------------------------------------------------------+

Gruß
naranjoe


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:01 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum