0
Views
0
Downloads
0
Favorites
AutoTraderRus
//+------------------------------------------------------------------+
//| AutoTrader.mq5 |
//| Copyright 2016, AM2 |
//| http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, AM2"
#property link "http://www.forexsystems.biz"
#property version "1.00"
#define VK_CONTROL 0x11 //CTRL key
#define KEY_CODE 'E'
// Ïîäêëþ÷àåì áèáëèîòåêó Windows äëÿ ðàñïîçíàâàíèÿ íàæàòèÿ êëàâèø
#import "user32.dll"
void keybd_event(int bVk,int bScan,int dwFlags,int dwExtraInfo);
#import
// Èñïîëüçóåì êëàññ CTrade
#include<Trade\Trade.mqh>
//Îáúåêò êëàññà CTrade
CTrade trade;
// Îáúåêò êëàññà CPositionInfo
CPositionInfo position;
// Âõîäíûå ïåðåìåííûå
input int StartHour = 9; // ×àñ íà÷àëà òîðãîâëè
input int StartMinute = 30; // Ìèíóòà íà÷àëà òîðãîâëè
input int StopHour = 23; // ×àñ îêîí÷àíèÿ òîðãîâëè
input int StopMinute = 30; // Ìèíóòà îêîí÷àíèÿ òîðãîâëè
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
Comment("");
}
//+------------------------------------------------------------------+
//| Íàæèìàåì êëàâèøè Ctrl+E |
//+------------------------------------------------------------------+
void Key()
{
keybd_event(VK_CONTROL,0,0,0);
Sleep(10);
keybd_event(KEY_CODE,0,0,0);
Sleep(10);
keybd_event(KEY_CODE,0,2,0);
Sleep(10);
keybd_event(VK_CONTROL,0,2,0);
}
//+------------------------------------------------------------------+
//| Ïðîâåðêà âðåìåíè òîðãîâëè |
//+------------------------------------------------------------------+
bool TimeSession(int aStartHour,int aStartMinute,int aStopHour,int aStopMinute,datetime aTimeCur)
{
//--- âðåìÿ íà÷àëà ñåññèè
int StartTime=3600*aStartHour+60*aStartMinute;
//--- âðåìÿ îêîí÷àíèÿ ñåññèè
int StopTime=3600*aStopHour+60*aStopMinute;
//--- òåêóùåå âðåìÿ â ñåêóíäàõ îò íà÷àëà äíÿ
aTimeCur=aTimeCur%86400;
if(StopTime<StartTime)
{
//--- ïåðåõîä ÷åðåç ïîëíî÷ü
if(aTimeCur>=StartTime || aTimeCur<StopTime)
{
return(true);
}
}
else
{
//--- âíóòðè îäíîãî äíÿ
if(aTimeCur>=StartTime && aTimeCur<StopTime)
{
return(true);
}
}
return(false);
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
// çàêðûâàåì âñå ïîçèöèè ïî âðåìåíè
if(!TimeSession(StartHour,StartMinute,StopHour,StopMinute,TimeCurrent()))
{
for(int i=0; i<PositionsTotal(); i++)
{
if(position.Select(PositionGetSymbol(i)))
{
// çàêðûòü îòêðûòóþ ïîçèöèþ ïî ýòîìó ñèìâîëó
trade.PositionClose(PositionGetSymbol(i));
}
}
}
// âêëþ÷àåì ïî âðåìåíè
if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)==0 && TimeSession(StartHour,StartMinute,StopHour,StopMinute,TimeCurrent())) Key();
// âûêëþ÷àåì ïî âðåìåíè
if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)==1 && !TimeSession(StartHour,StartMinute,StopHour,StopMinute,TimeCurrent())) Key();
Comment("\n Enable: ",TerminalInfoInteger(TERMINAL_TRADE_ALLOWED),
"\n Time: ",TimeCurrent());
}
//+------------------------------------------------------------------+
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---