论坛全局菜单下方 - TICKMILL 285X70论坛全局菜单下方 - ThinkMarkets285X70论坛全局菜单下方 - 荔枝返现285X70论坛全局菜单下方 -  icmarkets285X70
查看:594回复:0
草龙
注册时间2004-12-17
[MT4-EA]csv_margin_tracker
楼主发表于:2014-03-03 04:31只看该作者倒序浏览
1楼 电梯直达
电梯直达
//+------------------------------------------------------------------+ //| csv_margin_tracker.mq4 | //| Copyright ? 2013 | //| [email protected] | //+------------------------------------------------------------------+ extern int IntervalSeconds = 900; extern bool MailAlert = false; extern int MailAlertIntervalSeconds = 21600; extern double MailAlertMarginLevel1 = 0.6; // Margin as percentage of Equity extern double MailAlertMarginLevel2 = 0.8; // Margin as percentage of Equity int Handle; int Qnt_Symb; int i; datetime CurrentIntervalStart; datetime CurrentMailAlertIntervalStart[2]; datetime CurrentTime; string DataString[3]; double DataDouble[3]; double MailAlertMarginLevel[2]; int init() { OpenFile(); WelcomeMessage(); MailAlertMarginLevel[1] = MailAlertMarginLevel1; MailAlertMarginLevel[2] = MailAlertMarginLevel2; CurrentTime = TimeCurrent(); SetNewInterval(); SetNewMailAlertInterval(1); SetNewMailAlertInterval(2); } int start() { CurrentTime = TimeCurrent(); UpdateData(); if (IntervalEndCheck()) { WriteData(); SetNewInterval(); } for(i=1;i<=2;i++) { if (MailAlertCheck(i)) { SendMailAlert(i); SetNewMailAlertInterval(i); } } } int deinit() { FileClose(Handle); } void OpenFile() // opens file { Handle=FileOpen("margintracker_"+AccountNumber()+".csv",FILE_CSV|FILE_READ|FILE_WRITE,';'); if(Handle<1) Alert ("File error: ",GetLastError()); } bool IntervalEndCheck() // checks if the end of the interval is reached { if(CurrentTime - CurrentIntervalStart >= IntervalSeconds) return(true); return(false); } void WriteData() // writes data to file { Qnt_Symb=FileWrite(Handle,DataString[0],DataString[1],DataString[2],DataDouble[0],DataDouble[1],DataDouble[2]); if(Qnt_Symb < 0) { Alert("Error writing to the file",GetLastError()); FileClose(Handle); } FileFlush(Handle); } void SetNewInterval() // clears data from memory and sets start of new time interval { DataDouble[0] = 1000000000; DataDouble[1] = 1000000000; DataDouble[2] = 0; CurrentIntervalStart = CurrentTime - (CurrentTime % IntervalSeconds); } void UpdateData() // updates data in memory { DataString[0] = CurrentTime; DataString[1] = TimeToStr(CurrentTime,TIME_DATE); DataString[2] = TimeToStr(CurrentTime,TIME_MINUTES); if(AccountBalance() < DataDouble[0]) DataDouble[0] = AccountBalance(); if(AccountEquity() < DataDouble[1]) DataDouble[1] = AccountEquity(); if(AccountMargin() > DataDouble[2]) DataDouble[2] = AccountMargin(); } bool MailAlertCheck(int x) // checks for conditions to send mail alert { if(MailAlert == true && AccountMargin() / AccountEquity() >= MailAlertMarginLevel[x] && CurrentTime - CurrentMailAlertIntervalStart[x] >= MailAlertIntervalSeconds) return(true); return(false); } void SendMailAlert(int x) // sends mail alert { SendMail("Account "+AccountNumber()+" Margin reached "+MailAlertMarginLevel[x]*100+" %", "Balance: "+AccountBalance()+". Equity: "+AccountEquity()+". Margin: "+AccountMargin()+"."); } void SetNewMailAlertInterval(int x) // sets start of new time interval for mail alert { CurrentMailAlertIntervalStart[x] = CurrentTime; } void WelcomeMessage() // displays welcome message { Print("tracking Margins for account ", AccountNumber()); if(AccountStopoutMode() == 0) Print("stopout for account ", AccountNumber()," will be triggered at Margin level < ", AccountStopoutLevel(), "%, i.e. when Margin reaches ", 100/(AccountStopou
TK29帖子1楼右侧xm竖版广告90-240
个性签名

阅尽天下指标
搬砖开始,始于2014

广告
TK30+TK31帖子一樓廣告
TK30+TK31帖子一樓廣告

本站免责声明:

1、本站所有广告及宣传信息均与韬客无关,如需投资请依法自行决定是否投资、斟酌资金安全及交易亏损风险;

2、韬客是独立的、仅为投资者提供交流的平台,网友发布信息不代表韬客的观点与意思表示,所有因网友发布的信息而造成的任何法律后果、风险与责任,均与韬客无关;

3、金融交易存在极高法律风险,未必适合所有投资者,请不要轻信任何高额投资收益的诱导而贸然投资;投资保证金交易导致的损失可能超过您投入的资金和预期。请您考虑自身的投资经验及风险承担能力,进行合法、理性投资;

4、所有投资者的交易帐户应仅限本人使用,不应交由第三方操作,对于任何接受第三方喊单、操盘、理财等操作的投资和交易,由此导致的任何风险、亏损及责任由投资者个人自行承担;

5、韬客不隶属于任何券商平台,亦不受任何第三方控制,韬客不邀约客户投资任何保证金交易,不接触亦不涉及投资者的任何资金及账户信息,不代理任何交易操盘行为,不向客户推荐任何券商平台,亦不存在其他任何推荐行为。投资者应自行选择券商平台,券商平台的任何行为均与韬客无关。投资者注册及使用韬客即表示其接受和认可上述声明,并自行承担法律风险。

版权所有:韬客外汇论坛 www.talkfx.com 联络我们:[email protected]