robotpowerm5_meta4v1.mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «robotpowerm5_meta4v1.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой торгового советника для платформы MetaTrader 4, написанный на языке MQL4. Советник анализирует индикаторы Bulls Power и Bears Power с заданным периодом и открывает сделки в зависимости от суммарного знака их значений: при положительном значении открывается покупка, при отрицательном — продажа.
Советник включает функцию трейлинг-стопа для управления защищёнными позициями, а также позволяет задавать уровни тейк-профита и стоп-лосса. Перед открытием новой позиции проверяется достаточность свободных средств на счёте и наличие минимального количества баров на графике.
Для идентификации своих ордеров советник использует пользовательский идентификатор, что позволяет запускать несколько советников одновременно на одном счёте с различными параметрами. Торговые операции выполняются через стандартный функцию OrderSend платформы MetaTrader 4.
Настройки программы
| Настройка | Описание |
|---|---|
| BullBearPeriod | Период расчёта индикаторов Bulls Power и Bears Power, используемых для определения сигнала на открытие позиции. |
| lots | Объём торговой позиции в лотах. |
| TrailingStop | Расстояние трейлинг-стопа в пунктах для защиты прибыли по открытым позициям. |
| takeProfit | Уровень тейк-профита в пунктах. Рекомендуется не устанавливать более 150 пунктов. |
| stopLoss | Уровень стоп-лосса в пунктах. В настройке указано, что стоп-лосс не рекомендуется использовать. |
| slippage | Допустимое проскальзывание цены при выполнении торговых ордеров в пунктах. |
| nameEA | Идентификатор советника. Позволяет нескольким советникам одновременно существовать на одном счёте с различными значениями параметров. |
Поиск по коду файла
extern int BullBearPeriod=5;
extern double lots = 1.0; //
extern double TrailingStop = 15; // trail stop in points
extern double takeProfit = 150; // recomended no more than 150
extern double stopLoss = 45; // do not use s/l
extern double slippage = 3;
extern string nameEA = "DayTrading"; // EA identifier. Allows for several co-existing EA with different values
double bull,bear;
double realTP, realSL,b,s,sl,tp;
bool isBuying = false, isSelling = false, isClosing = false;
int cnt, ticket;
int init() {
// код доступен только после оплаты
}
int deinit() {
return(0);
}
int start() {
// код доступен только после оплаты
}
if(Bars < 200) {
Print("Not enough bars for this strategy - ", nameEA);
return(-1);
}
calculateIndicators(); // Calculate indicators' value
int totalOrders = OrdersTotal();
int numPos = 0;
for(cnt=0; cnt<totalOrders; cnt++) { // scan all orders and positions...
OrderSelect(cnt, SELECT_BY_POS); // the next line will check for ONLY market trades, not entry orders
if(OrderSymbol() == Symbol() && OrderType() <= OP_SELL ) { // only look for this symbol, and only orders from this EA
numPos++;
if(OrderType() == OP_BUY) { // Check for close signal for bought trade
if(TrailingStop > 0) { // Check trailing stop
if(Bid-OrderOpenPrice() > TrailingStop*Point)
{
if(OrderStopLoss() < (Bid - TrailingStop*Point))
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*Point,OrderTakeProfit(),0,Blue);
}
}
} else { // Check sold trade for close signal
if(TrailingStop > 0) { // Control trailing stop
if(OrderOpenPrice() - Ask > TrailingStop*Point)
{
if(OrderStopLoss() == 0 || OrderStopLoss() > Ask + TrailingStop*Point)
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+TrailingStop*Point,OrderTakeProfit(),0,Red);
}
}
}
}
}
if(numPos < 1) {
if(AccountFreeMargin() < 1000*lots) {
Print("Not enough money to trade ",Показано первые 50% кода (символов: 3159)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.