59 lines
1.8 KiB
MQL5
59 lines
1.8 KiB
MQL5
|
|
||
|
#property copyright "Copyright 2024, MetaQuotes Ltd."
|
||
|
#property link "https://www.mql5.com"
|
||
|
#property version "1.00"
|
||
|
|
||
|
#include <Trade\Trade.mqh>
|
||
|
//+------------------------------------------------------------------+
|
||
|
//| Variable |
|
||
|
//+------------------------------------------------------------------+
|
||
|
|
||
|
input int openHour;
|
||
|
input int closeHour;
|
||
|
input double lotsize =0.1;
|
||
|
bool isTradeOpen = false;
|
||
|
|
||
|
CTrade trade;
|
||
|
|
||
|
//+------------------------------------------------------------------+
|
||
|
//| Expert initialization function |
|
||
|
//+------------------------------------------------------------------+
|
||
|
int OnInit(){
|
||
|
|
||
|
if(openHour == closeHour){return INIT_PARAMETERS_INCORRECT;}
|
||
|
|
||
|
return(INIT_SUCCEEDED);
|
||
|
}
|
||
|
//+------------------------------------------------------------------+
|
||
|
//| Expert deinitialization function |
|
||
|
//+------------------------------------------------------------------+
|
||
|
void OnDeinit(const int reason){
|
||
|
|
||
|
|
||
|
|
||
|
}
|
||
|
//+------------------------------------------------------------------+
|
||
|
//| Expert tick function |
|
||
|
//+------------------------------------------------------------------+
|
||
|
void OnTick(){
|
||
|
|
||
|
// get current time
|
||
|
MqlDateTime timeNow;
|
||
|
TimeToStruct(TimeCurrent(), timeNow);
|
||
|
|
||
|
// check for trade open
|
||
|
if(openHour == timeNow.hour && !isTradeOpen){
|
||
|
//open trade
|
||
|
trade.PositionOpen(_Symbol,ORDER_TYPE_BUY,lotsize,SymbolInfoDouble(_Symbol,SYMBOL_ASK),0,0);
|
||
|
//set flag
|
||
|
isTradeOpen = true;
|
||
|
}
|
||
|
|
||
|
// check for trade close
|
||
|
if(closeHour == timeNow.hour && isTradeOpen){
|
||
|
//open trade
|
||
|
trade.PositionClose(_Symbol);
|
||
|
//set flag
|
||
|
isTradeOpen = false;
|
||
|
}
|
||
|
}
|