ima_expert.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «ima_expert.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой торговый советник для платформы MetaTrader 5, написанный на языке MQL5. Советник использует пользовательский индикатор "ima" для анализа текущей рыночной ситуации и генерации торговых сигналов.
Советник автоматически открывает позиции покупки или продажи на основе скорости изменения значения индикатора. Если скорость изменения превышает заданный порог вверх, открывается покупка; если вниз — продажа. Пересчёт сигнала происходит при появлении нового бара при отсутствии открытой позиции.
Для управления позициями реализована модификация ордеров при достижении определённого уровня прибыли, а также закрытие позиций при превышении заданного порога убытка. Размер лота рассчитывается на основе свободного маркета и параметров риска с проверкой достаточности средств для открытия сделки.
Настройки программы
| Настройка | Описание |
|---|---|
| n | Период скользящей средней, используемый в пользовательском индикаторе "ima". |
| take | Уровень фиксации прибыли в пунктах, при достижении которого позиция модифицируется с переносом стоп-лосса. |
| drop | Порог убытка в пунктах, при превышении которого открытая позиция принудительно закрывается. |
| k | Коэффициент чувствительности, определяющий минимальную скорость изменения индикатора для генерации сигнала на открытие позиции. |
| r | Коэффициент риска, используемый для расчёта размера лота на основе свободного маркета. |
| max_lots | Максимально допустимый размер лота для открытой позиции. |
Поиск по коду файла
#property version "1.00"
#include <Trade\Trade.mqh>
#include <Trade\PositionInfo.mqh>
#include <Trade\AccountInfo.mqh>
input int n=5; // MA Period
input int take=50; // ??????? ?????? ???????
input int drop=1000; // ??????? ?????? ??????
input double k=0.5; // ??????? ????????
input double r=0.01; // ??????? ?????
input double max_lots=1; // ???????????? ??? (0-??? ???????????)
int imaHandle,sp=30;
bool order_opened,f_buy,f_sell,f_buy_modify,f_sell_modify,f_close;
double lot,k1,aIMA[];
datetime h,aT[1];
MqlTick current_price;
CPositionInfo current_order;
CAccountInfo account_info;
CTrade trade;
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
IndicatorRelease(imaHandle);
}
void OnTick()
{
// код доступен только после оплаты
}
order_opened=current_order.Select(_Symbol);
CopyTime(_Symbol,0,0,1,aT); //????????? ????? ???????? ?????????? ????
if(!order_opened && h!=aT[0])
{
CopyBuffer(imaHandle,0,0,2,aIMA); //???????? ? ????? ?????? ??????????
ArraySetAsSeries(aIMA,true); //????????????? ?????????? ??????? ??? ?????????
k1=(aIMA[0]-aIMA[1])/MathAbs(aIMA[1]);
f_buy=(k1>=k); //?????? ? ???????? ??????? ???????
f_sell=(k1<=-k); //?????? ? ???????? ???????? ???????
h=aT[0];
}
if(order_opened && current_order.Profit()>0)
{
SymbolInfoTick(_Symbol,current_price);
f_buy_modify=(current_order.Type()==POSITION_TYPE_BUY &&
(current_price.bid-current_order.PriceOpen())/_Point>take &&
(current_price.bid-current_order.StopLoss())/_Point>take);
f_sell_modify=(current_order.Type()==POSITION_TYPE_SELL &&
(current_order.PriceOpen()-current_price.ask)/_Point>take &&
(MПоказано первые 50% кода (символов: 3317)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.