AmazingEA
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «news_amazingea_1.0.5.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой торговый советник для платформы MetaTrader 4, написанный на языке MQL4. Советник предназначен для автоматизации торговых операций и реализует логику размещения отложенных ордеров в задаваемое пользователем временное окно.
В рамках своей работы советник формирует ордера BuyStop и SellStop на текущем инструменте перед расчётным временем события. Количество лотов, уровень тейк-профита и магический номер задаются пользователем. Для предотвращения одновременного доступа к торговым операциям используется механизм глобальных переменных платформы в качестве блокировки.
Советник включает функции управления открытыми позициями: перевод стоп-лосса в безубыточную зону и использование трейлинг-стопа. Также реализована автоматическая очистка отложенных ордеров при срабатывании противоположного ордера или по истечении заданного времени. Все значимые события записываются в лог-файл, имя которого формируется из символа инструмента и пользовательской настройки.
Настройки программы
| Настройка | Описание |
|---|---|
| TP | Тейк-профит — Уровень тейк-профита в пунктах |
| NHour | Час события — Час расчётного временного окна события |
| NMin | Минута события — Минута расчётного временного окна события |
| BEPips | Безубыточные пункты — Расстояние в пунктах для перевода стоп-лосса в безубыточную зону |
| TrailingStop | Трейлинг-стоп — Расстояние для трейлинг-стопа в пунктах |
| Lots | Объём лота — Размер лота для открытия ордеров |
| TradeLog | Префикс журнала — Префикс имени файла для записи журнала событий |
Поиск по коду файла
extern int TP=25;
extern int NHour=0;
extern int NMin=0;
extern int BEPips=11;
extern int TrailingStop=0;
extern double Lots=0.2;
extern string TradeLog = " MI_Log";
double h,l,ho,lo,hso,lso,htp,ltp,sp;
int Magic=2210;
string filename;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
return(0);
}
int CheckOrdersCondition()
{
int result=0;
for (int i=0;i<OrdersTotal();i++) {
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if ((OrderType()==OP_BUY) && (OrderSymbol() == Symbol()) && (OrderMagicNumber() == Magic)) {
result=result+1000;
}
if ((OrderType()==OP_SELL) && (OrderSymbol() == Symbol()) && (OrderMagicNumber() == Magic)) {
result=result+100;
}
if ((OrderType()==OP_BUYSTOP) && (OrderSymbol() == Symbol()) && (OrderMagicNumber() == Magic)) {
result=result+10;
}
if ((OrderType()==OP_SELLSTOP) && (OrderSymbol() == Symbol()) && (OrderMagicNumber() == Magic)) {
result=result+1;
}
}
return(result); // 0 means we have no trades
}
void OpenBuyStop()
{
int ticket,err,tries;
tries = 0;
if (!GlobalVariableCheck("InTrade")) {
while (tries < 3)
{
GlobalVariableSet("InTrade", CurTime()); // set lock indicator
ticket = OrderSend(Symbol(),OP_BUYSTOP,Lots,ho,1,hso,htp,"EA Order",Magic,0,Red);
Write("in function OpenBuyStop OrderSend Executed , ticket ="+ticket);
GlobalVariableDel("InTrade"); // clear lock indicator
if(ticket<=0) {
tries++;
} else tries = 3;
}
}
}
void OpenSellStop()
{
int ticket,err,tries;
tries = 0;
if (!GlobalVariableCheck("InTrade")) {
while (tries < 3)
{
GlobalVariableSet("InTrade", CurTime()); // set lock indicator
ticket = OrderSend(Symbol(),OP_SELLSTOP,Lots,lo,1,lso,ltp,"EA Order",Magic,0,Red);
Write("in function OpenSellStop OrderSend Executed , ticket ="+ticket);
GlobalVariableDel("InTrade"); // clear lock indicator
if(ticket<=0) {
tries++;
} else tries = 3;
}
}
}
void DoBE(int byPips)
{
for (int i = 0; i < OrdersTotal(); i++) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if ( OrderSymbol()==Symbol() && (OrderMagicNumber() == Magic)) // only look if mygrid and symbol...
{
if (OrderType() == OP_BUY) if (Bid - OrderOpenPrice() > byPips * Point) if (OrderStopLoss() < OrderOpenPrice()) {
Write("Movine StopLoss of Buy Order to BE+1");
OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() + Point, OrderTakeProfit(), Red);
}
if (OrderType() == OP_SELL) if (OrderOpenPrice() - Ask > byPips * Point) if (OrderStopLoss() > OrderOpenPrice()) {
Write("Movine StopLoss of Buy Order to BE+1");
OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() - Point, OrderTakeProfit(), Red);
}
}
}
}
void DoTrail()
{
for (int i = 0; i < OrdersTotal(); i++) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if ( OrderSymbol()==Symbol() && (OrderMagicNumber() == Magic)) // only look if mygrid and symbol...
{
if (OrderType() == OP_BUY) {
if(Bid-OrderOpenPrice()>Point*TrailingStop)
{
if(OrderStopLoss()<Bid-Point*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
return(0);
}
}
}
if (OПоказано первые 50% кода (символов: 5481)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.