oco_ea(1).mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «oco_ea(1).mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Представлен торговый советник для платформы MetaTrader 4, реализующий систему OCO (One Cancels Other — «один отменяет другой»). Советник позволяет одновременно задавать несколько отложенных ордеров (Buy Limit, Buy Stop, Sell Limit, Sell Stop) и автоматически исполнять их при достижении ценовых уровней. После срабатывания ордера позиция открывается по рыночной цене и модифицируется с установкой стоп-лосса и тейк-профита.
Логика работы основана на глобальных переменных MetaTrader, в которых хранятся цены отложенных ордеров и параметры управления. При достижении цены срабатывания советник отправляет рыночный ордер через торговый API, а затем модифицирует его, устанавливая уровни Stop Loss и Take Profit. Если активирован режим OCO, после открытия одной позиции все остальные отложенные ордера сбрасываются.
Советник отображает текущие цены отложенных ордеров и рыночную информацию в комментариях на графике. При успешном исполнении ордера воспроизводится звуковой сигнал. Параметры, такие как объём позиции, расстояние стоп-лосса и тейк-профита в пунктах, а также режим OCO, управляются через глобальные переменные платформы.
Поиск по коду файла
#property strict
#include <stdlib.mqh>
#include <WinUser32.mqh>
string dtbahl()
{
string dt="Local Time : "+TimeToStr(LocalTime(),TIME_DATE|TIME_SECONDS)+
" r**************c*@gmail.coom"+"\n"+
"Bid :"+DoubleToStr(Bid,Digits)+" Ask :"+DoubleToStr(Ask,Digits)+
" High :"+DoubleToStr(High[0],Digits)+" Low :"+DoubleToStr(Low[0],Digits);
return (dt);
}
bool res;
bool GlobalVar_init()
{
bool InitGlobalVar=false;
if(!GlobalVariableCheck("OCO_lots"))
{
GlobalVariableSet("OCO_lots",0.1);
InitGlobalVar=(InitGlobalVar || true);
}
if(!GlobalVariableCheck("OCO_tP_Pips"))
{
GlobalVariableSet("OCO_tP_Pips",300);
InitGlobalVar=(InitGlobalVar || true);
}
if(!GlobalVariableCheck("OCO_sL_Pips"))
{
GlobalVariableSet("OCO_sL_Pips",300);
InitGlobalVar=(InitGlobalVar || true);
}
if(!GlobalVariableCheck("OCO_oCO"))
{
GlobalVariableSet("OCO_oCO",1);
InitGlobalVar=(InitGlobalVar || true);
}
if(!GlobalVariableCheck("OCO_BUY_LIMIT"))
{
GlobalVariableSet("OCO_BUY_LIMIT",0);
InitGlobalVar=(InitGlobalVar || true);
}
if(!GlobalVariableCheck("OCO_SELL_LIMIT"))
{
GlobalVariableSet("OCO_SELL_LIMIT",0);
InitGlobalVar=(InitGlobalVar || true);
}
if(!GlobalVariableCheck("OCO_BUY_STOP"))
{
GlobalVariableSet("OCO_BUY_STOP",0);
InitGlobalVar=(InitGlobalVar || true);
}
if(!GlobalVariableCheck("OCO_SELL_STOP"))
{
GlobalVariableSet("OCO_SELL_STOP",0);
InitGlobalVar=(InitGlobalVar || true);
}
if(!GlobalVariableCheck("OCO_confirmation"))
{
GlobalVariableSet("OCO_confirmation",0);
InitGlobalVar=(InitGlobalVar || true);
}
return(InitGlobalVar);
}
int init()
{
// код доступен только после оплаты
}
int deinit()
{
return(0);
}
void reset_variable()
{
GlobalVariableSet("OCO_BUY_LIMIT",0);
GlobalVariableSet("OCO_SELL_LIMIT",0);
GlobalVariableSet("OCO_BUY_STOP",0);
GlobalVariableSet("OCO_SELL_STOP",0);
GlobalVariableSet("OCO_confirmation",0);
}
int ticket=0;
double takeprofit=0;
double stoploss=0;
int start()
{
// код доступен только после оплаты
}
string DisplayTime=dtbahl();
if(GlobalVariableGet("OCO_BUY_STOP")>0)
DisplayTime=DisplayTime+"\n"+"BUY STOP AT "+DoubleToStr(GlobalVariableGet("OCO_BUY_STOP"),Digits);
if(GlobalVariableGet("OCO_BUY_LIMIT")>0)
DisplayTime=DisplayTime+"\n"+"BUY LIMIT AT "+DoubleToStr(GlobalVariableGet("OCO_BUY_LIMIT"),Digits);
if(GlobalVariableGet("OCO_SELL_LIMIT")>0)
DisplayTime=DisplayTime+"\n"+"SELL LIMIT AT "+DoubleToStr(GlobalVariableGet("OCO_SELL_LIMIT"),Digits);
if(GlobalVariableGet("OCO_SELL_STOP")>0)
DisplayTime=DisplayTime+"\n"+"SELL STOP AT "+DoubleToStr(GlobalVariableGet("OCO_SELL_STOP"),Digits);
Comment(DisplayTime);
if(GlobalVariableGet("Показано первые 50% кода (символов: 4750)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.