![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В настройках ничего не менял Lot 0.05 Доля депо 0.3 советник выдает ошибку : invalid lots amount for OrderSend function. Может есть возможность установить фиксированный лот???
ДОЛЯ = 0 ТОГДА БУДЕТ ФИКСИРОВАНЫЙ ТОТ ЧТО ПРОПИСАН.. ( БЕЗ ВЫЧИСЛЕНИЙ )
тест по одной из пар за эту неделю лотом в полдепа (0.6)
Баров в истории 2146
Смоделировано тиков 246212Качество моделирования 90.00%
Ошибки рассогласования графиков 41
Начальный депозит 50.00
Чистая прибыль 3168.32
Общая прибыль 3168.32
Общий убыток 0.00
Прибыльность
Матожидание выигрыша 211.22
Абсолютная просадка 11.51
Максимальная просадка 1234.53 (32.83%)
Относительная просадка 86.71% (251.23)
Всего сделок 15
Короткие позиции (% выигравших) 1 (100.00%)
Длинные позиции (% выигравших) 14 (100.00%)
Прибыльные сделки (% от всех) 15 (100.00%)
Убыточные сделки (% от всех) 0 (0.00%)
Самая большая
прибыльная сделка 1429.12
убыточная сделка 0.00
Средняя
прибыльная сделка 211.22
убыточная сделка 0.00
Максимальное количество
непрерывных выигрышей (прибыль) 15 (3168.32)
непрерывных проигрышей (убыток) 0 (0.00)
Максимальная
непрерывная прибыль (число выигрышей) 3168.32 (15)
непрерывный убыток (число проигрышей) 0.00 (0)
Средний
непрерывный выигрыш 15
непрерывный проигрыш 0
что все примолкли ? тема вроде далеко не исчерпана...
Я тестер его че та он плохие результаты показывает.
во первых это шаблон ... в нём нерабочий трал ( только на пару где висит ) во вторых довльно таки мягкие условия на вход..трал для всех 6 пар привожу ниже...во вторых в тестере его невозможно протестить не имея полной без дыр истории по всем 6 парам...
for(int k=0; k<=OrdersTotal(); k++)
{
if (OrderSelect(k,SELECT_BY_POS)==true)
{
if (OrderMagicNumber()!= Magic) continue;
//..................
if(OrderType() == OP_SELL&&OrderTakeProfit()==0)
{
t=MarketInfo(OrderSymbol(),MODE_BID)-TP*MarketInfo(OrderSymbol(),MODE_POINT);
OrderModify(OrderTicket(), OrderOpenPrice(),OrderStopLoss(),
t,OrderMagicNumber(), CLR_NONE);
}
if(OrderType() == OP_BUY&&OrderTakeProfit()==0)
{
t=MarketInfo(OrderSymbol(),MODE_ASK)+TP*MarketInfo(OrderSymbol(),MODE_POINT);
OrderModify(OrderTicket(), OrderOpenPrice(),OrderStopLoss(),
t,OrderMagicNumber(), CLR_NONE);
}
//.................
if(OrderType() == OP_SELL&&OrderStopLoss()==0)
{
s=MarketInfo(OrderSymbol(),MODE_ASK)+ SL*MarketInfo(OrderSymbol(),MODE_POINT);
OrderModify(OrderTicket(), OrderOpenPrice(),s,
OrderTakeProfit(),OrderMagicNumber(), CLR_NONE);
}
if(OrderType() == OP_BUY&&OrderStopLoss()==0)
{
s=MarketInfo(OrderSymbol(),MODE_BID)- SL*MarketInfo(OrderSymbol(),MODE_POINT);
OrderModify(OrderTicket(), OrderOpenPrice(),s,
OrderTakeProfit(),OrderMagicNumber(), CLR_NONE);
}
//................
if(OrdersTotal() > 0)
{
if(OrderType() == OP_SELL&&OrderMagicNumber() ==Magic)
{
if(TrailingStop> 0)
{
if(OrderOpenPrice() - MarketInfo(OrderSymbol(),MODE_ASK) >= TrailingStop * MarketInfo(OrderSymbol(),MODE_POINT))
{
if(OrderStopLoss() > (MarketInfo(OrderSymbol(),MODE_ASK) + MarketInfo(OrderSymbol(),MODE_POINT)* TrailingStop))
{
if(TrailingStop>0&&TrailingStop<MarketInfo(OrderSymbol(),MODE_STOPLEVEL))TrailingStop=MarketInfo(OrderSymbol(),MODE_STOPLEVEL);
OrderModify(OrderTicket(), OrderOpenPrice(),MarketInfo(OrderSymbol(),MODE_ASK) + MarketInfo(OrderSymbol(),MODE_POINT) * TrailingStop,
OrderTakeProfit(),OrderMagicNumber(), CLR_NONE);
}
}
}
}
else
if(OrderType() == OP_BUY&&OrderMagicNumber() ==Magic)
{
if(TrailingStop > 0)
{
if(MarketInfo(OrderSymbol(),MODE_BID) - OrderOpenPrice() >= TrailingStop * MarketInfo(OrderSymbol(),MODE_POINT))
{
if(OrderStopLoss() < (MarketInfo(OrderSymbol(),MODE_BID) - MarketInfo(OrderSymbol(),MODE_POINT) * TrailingStop))
{
if(TrailingStop>0&&TrailingStop<MarketInfo(OrderSymbol(),MODE_STOPLEVEL))TrailingStop=MarketInfo(OrderSymbol(),MODE_STOPLEVEL);
OrderModify(OrderTicket(), OrderOpenPrice(),MarketInfo(OrderSymbol(),MODE_BID) - MarketInfo(OrderSymbol(),MODE_POINT) * TrailingStop,
OrderTakeProfit(),OrderMagicNumber(), CLR_NONE);
}
}
}
}
}
if (OrderType()==OP_BUY&&CLOSE_BUY==true&&OrderMagicNumber() ==Magic)
{
if (iStochastic(OrderSymbol(),5,5,3,3, MODE_SMA, 0, MODE_SIGNAL,0)<iStochastic(OrderSymbol(),5,5,3,3, MODE_SMA, 0, MODE_SIGNAL,1)&&OrderOpenPrice()<iClose(OrderSymbol(),0,0)-MIN_PROFIT*MarketInfo(OrderSymbol(),MODE_POINT))
OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),3);
}
if (OrderType()==OP_SELL&&CLOSE_SELL==true&&OrderMagicNumber() ==Magic)
{
if (iStochastic(OrderSymbol(),5,5,3,3, MODE_SMA, 0, MODE_SIGNAL,0)>iStochastic(OrderSymbol(),5,5,3,3, MODE_SMA, 0, MODE_SIGNAL,1)&&OrderOpenPrice()>iClose(OrderSymbol(),0,0)+MIN_PROFIT*MarketInfo(OrderSymbol(),MODE_POINT))
OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),3);
}
}
}
return;
}
Привет всем!
Я ток что из отпуска...
Море солнце и вода наши лучшие друзья
Отдашнувши, готов продолжить работу...
Предлагаю выдвинуть конкретную тему над которой будем работать!
во первых это шаблон ... в нём нерабочий трал ( только на пару где висит ) во вторых довльно таки мягкие условия на вход..трал для всех 6 пар привожу ниже...во вторых в тестере его невозможно протестить не имея полной без дыр истории по всем 6 парам...
for(int k=0; k<=OrdersTotal(); k++)
{
if (OrderSelect(k,SELECT_BY_POS)==true)
{
if (OrderMagicNumber()!= Magic) continue;
//..................
if(OrderType() == OP_SELL&&OrderTakeProfit()==0)
{
t=MarketInfo(OrderSymbol(),MODE_BID)-TP*MarketInfo(OrderSymbol(),MODE_POINT);
OrderModify(OrderTicket(), OrderOpenPrice(),OrderStopLoss(),
t,OrderMagicNumber(), CLR_NONE);
}
if(OrderType() == OP_BUY&&OrderTakeProfit()==0)
{
t=MarketInfo(OrderSymbol(),MODE_ASK)+TP*MarketInfo(OrderSymbol(),MODE_POINT);
OrderModify(OrderTicket(), OrderOpenPrice(),OrderStopLoss(),
t,OrderMagicNumber(), CLR_NONE);
}
//.................
if(OrderType() == OP_SELL&&OrderStopLoss()==0)
{
s=MarketInfo(OrderSymbol(),MODE_ASK)+ SL*MarketInfo(OrderSymbol(),MODE_POINT);
OrderModify(OrderTicket(), OrderOpenPrice(),s,
OrderTakeProfit(),OrderMagicNumber(), CLR_NONE);
}
if(OrderType() == OP_BUY&&OrderStopLoss()==0)
{
s=MarketInfo(OrderSymbol(),MODE_BID)- SL*MarketInfo(OrderSymbol(),MODE_POINT);
OrderModify(OrderTicket(), OrderOpenPrice(),s,
OrderTakeProfit(),OrderMagicNumber(), CLR_NONE);
}
//................
if(OrdersTotal() > 0)
{
if(OrderType() == OP_SELL&&OrderMagicNumber() ==Magic)
{
if(TrailingStop> 0)
{
if(OrderOpenPrice() - MarketInfo(OrderSymbol(),MODE_ASK) >= TrailingStop * MarketInfo(OrderSymbol(),MODE_POINT))
{
if(OrderStopLoss() > (MarketInfo(OrderSymbol(),MODE_ASK) + MarketInfo(OrderSymbol(),MODE_POINT)* TrailingStop))
{
if(TrailingStop>0&&TrailingStop<MarketInfo(OrderSymbol(),MODE_STOPLEVEL))TrailingStop=MarketInfo(OrderSymbol(),MODE_STOPLEVEL);
OrderModify(OrderTicket(), OrderOpenPrice(),MarketInfo(OrderSymbol(),MODE_ASK) + MarketInfo(OrderSymbol(),MODE_POINT) * TrailingStop,
OrderTakeProfit(),OrderMagicNumber(), CLR_NONE);
}
}
}
}
else
if(OrderType() == OP_BUY&&OrderMagicNumber() ==Magic)
{
if(TrailingStop > 0)
{
if(MarketInfo(OrderSymbol(),MODE_BID) - OrderOpenPrice() >= TrailingStop * MarketInfo(OrderSymbol(),MODE_POINT))
{
if(OrderStopLoss() < (MarketInfo(OrderSymbol(),MODE_BID) - MarketInfo(OrderSymbol(),MODE_POINT) * TrailingStop))
{
if(TrailingStop>0&&TrailingStop<MarketInfo(OrderSymbol(),MODE_STOPLEVEL))TrailingStop=MarketInfo(OrderSymbol(),MODE_STOPLEVEL);
OrderModify(OrderTicket(), OrderOpenPrice(),MarketInfo(OrderSymbol(),MODE_BID) - MarketInfo(OrderSymbol(),MODE_POINT) * TrailingStop,
OrderTakeProfit(),OrderMagicNumber(), CLR_NONE);
}
}
}
}
}
if (OrderType()==OP_BUY&&CLOSE_BUY==true&&OrderMagicNumber() ==Magic)
{
if (iStochastic(OrderSymbol(),5,5,3,3, MODE_SMA, 0, MODE_SIGNAL,0)<iStochastic(OrderSymbol(),5,5,3,3, MODE_SMA, 0, MODE_SIGNAL,1)&&OrderOpenPrice()<iClose(OrderSymbol(),0,0)-MIN_PROFIT*MarketInfo(OrderSymbol(),MODE_POINT))
OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),3);
}
if (OrderType()==OP_SELL&&CLOSE_SELL==true&&OrderMagicNumber() ==Magic)
{
if (iStochastic(OrderSymbol(),5,5,3,3, MODE_SMA, 0, MODE_SIGNAL,0)>iStochastic(OrderSymbol(),5,5,3,3, MODE_SMA, 0, MODE_SIGNAL,1)&&OrderOpenPrice()>iClose(OrderSymbol(),0,0)+MIN_PROFIT*MarketInfo(OrderSymbol(),MODE_POINT))
OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),3);
}
}
}
return;
}
Спасибо за разяснения, но то что ты скинил я далек от этого и не знаю куда поставить даже.
Привет всем!
Я ток что из отпуска...
Море солнце и вода наши лучшие друзья
Отдашнувши, готов продолжить работу...
Предлагаю выдвинуть конкретную тему над которой будем работать!
Можно попробовать пробой "утреннего флета"... или попробовать просто свой флет ставить.. 20пп, 50пп.. любой (выставляем 2 отложенника)... при срабатывании одного отложенника обратный ставить с удвоением.. Выбрать часы работы.. в итоге доолжно всё выйти в плюс.. При достижении профита.. например 100usd фиксим прибыль и закрываем все ордера..)А если написать функцию закрытия встречними ордерами, то буит вообще красивая история..)
Привет всем!
Я ток что из отпуска...
Море солнце и вода наши лучшие друзья
Отдашнувши, готов продолжить работу...
Предлагаю выдвинуть конкретную тему над которой будем работать!
Могу предложить вам написать советник по этой стратегии, в документе Bookkeeper. Все остальное что нужно тоже находить в архиве.