puria.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «puria.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Puria — торговый советник для платформы MetaTrader 5, работающий на таймфрейме графика. Советник анализирует рыночные данные с помощью индикаторов Moving Average и MACD, формирует сигналы на покупку и продажу и выполняет торговые операции через торговый терминал MetaTrader 5.
При каждом новом баре советник проверяет условия для открытия позиции: направление определяется соотношением скользящих средних и значений индикатора MACD. Сигнал на покупку формируется при бычьем сочетании условий, сигнал на продажу — при медвежьем. Сделки открываются с заданными уровнями стоп-лосса и тейк-профита, каждая позиция маркируется уникальным магическим номером.
Советник поддерживает работу только с одним направлением сделки за раз: после открытия позиции противоположное направление блокируется до следующего сигнала. При недостаточном количестве баров на истории или ошибках получения данных выводятся соответствующие уведомления.
Настройки программы
| Настройка | Описание |
|---|---|
| Stop Loss (StopLoss) | Стоп-лосс — Целочисленный уровень стоп-лосса в пунктах для позиции. |
| Take Profit (TakeProfit) | Тейк-профит — Целочисленный уровень тейк-профита в пунктах для позиции. |
| ?????? Moving Average (MA1_Period) | MA1 Период — Период первой скользящей средней. |
| ?????? Moving Average (MA2_Period) | MA2 Период — Период второй скользящей средней. |
| ?????? Moving Average (MA3_Period) | MA3 Период — Период третьей скользящей средней. |
| Magic Number ????????? (EA_Magic) | Магический номер — Целочисленный идентификатор позиций советника. |
| ?????????? ????? ??? ???????? (Lot) | Лот — Объём торговой позиции в лотах. |
Поиск по коду файла
#property version "1.00"
input int StopLoss=14; // Stop Loss
input int TakeProfit=15; // Take Profit
input int MA1_Period=75; // ?????? Moving Average
input int MA2_Period=85; // ?????? Moving Average
input int MA3_Period=5; // ?????? Moving Average
input int EA_Magic=12345; // Magic Number ?????????
input double Lot=0.1; // ?????????? ????? ??? ????????
int macdHandle; // ????? ?????????? MACD
int ma75Handle; // ????? ?????????? Moving Average
int ma85Handle; // ????? ?????????? Moving Average
int ma5Handle; // ????? ?????????? Moving Average
double macdVal[5]; // ??????????? ?????? ??? ???????? ????????? ???????? ?????????? MACD
double ma75Val[5]; // ??????????? ?????? ??? ???????? ???????? ?????????? Moving Average
double ma85Val[5]; // ??????????? ?????? ??? ???????? ???????? ?????????? Moving Average
double ma5Val[5]; // ??????????? ?????? ??? ???????? ???????? ?????????? Moving Average
double p_close; // ?????????? ??? ???????? ???????? close ????
int STP,TKP; // ????? ???????????? ??? ???????? Stop Loss ? Take Profit
bool BuyOne=true,SellOne=true; // ?????? ???? ?????
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
IndicatorRelease(ma75Handle);
IndicatorRelease(ma85Handle);
IndicatorRelease(ma5Handle);
IndicatorRelease(macdHandle);
}
void OnTick()
{
// код доступен только после оплаты
}
static datetime Old_Time;
datetime New_Time[1];
bool IsNewBar=false;
int copied=CopyTime(_Symbol,_Period,0,1,New_Time);
if(copied>0) // ok, ??????? ???????????
{
if(Old_Time!=New_Time[0]) // ???? ?????? ????? ?? ?????
{
IsNewBar=true; // ????? ???
if(MQL5InfoInteger(MQL5_DEBUGGING)) Print("????? ???",New_Time[0],"?????? ???",Old_Time);
Old_Time=New_Time[0]; // ????????? ????? ????
}
}
else
{
Alert("?????? ??????????? ???????, ????? ?????? =",GetLastError());
ResetLastError();
return;
}
if(IsNewBar==false)
{
return;
}
int Mybars=Bars(_Symbol,_Period);
if(Mybars<60) // ???? ????? ?????????? ????? ?????? 60
{
Alert("?? ??????? ????? 60 ?????, ???????? ???????? ?? ?????!!");
return;
}
MqlTick latest_price; // ????? ?????????????? ??? ??????? ?????????
MqlTradeRequest mrequest; // ????? ?????????????? ??? ??????? ???????? ????????
MqlTradeResult mresult; // ????? ?????????????? ??? ????????? ??????????? ?????????? ???????? ????????
MqlRates mrate[]; // ????? ????????? ????, ?????? ? ????? ??? ??????? ????
ZeroMemory(mrequest);
ZeroMemory(mresult);
mrequest.action = TRADE_ACTION_DEAL; // ??????????? ??????????
mrequest.type_filling = ORDER_FILLING_FOK; // ??? ?????????? ?????? - ??? ??? ??????
mrequest.symbol = _Symbol; // ??????
mrequest.volume = Lot; // ?????????? ????? ??? ????????
mrequest.magic = EA_Magic; // Magic Number
mrequest.deviation=5; // ??????????????? ?? ??????? ????
/*
????????? ?????????? ? ???????? ????????? ? ???????????
??? ? ??????????
*/
ArraySetAsSeries(mrate,true);
ArraySetAsSeries(macdVal,true);
ArraySetAsSeries(ma75Val,true);
ArraySetAsSeries(ma85Val,true);
Показано первые 50% кода (символов: 5546)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.