[Архив!] ПИШЕМ СОВЕТНИКА ВМЕСТЕ!!! - страница 26

 
Evgenich >>:

В настройках ничего не менял Lot 0.05 Доля депо 0.3 советник выдает ошибку : invalid lots amount for OrderSend function. Может есть возможность установить фиксированный лот???


ДОЛЯ = 0 ТОГДА БУДЕТ ФИКСИРОВАНЫЙ ТОТ ЧТО ПРОПИСАН.. ( БЕЗ ВЫЧИСЛЕНИЙ )

 
что все примолкли ? тема вроде далеко не исчерпана...
Файлы:
xxx.mq4  16 kb
 

тест по одной из пар за эту неделю лотом в полдепа (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
 
грааль, епть )
 
sllawa3 писал(а) >>
что все примолкли ? тема вроде далеко не исчерпана...

Я тестер его че та он плохие результаты показывает.

 

во первых это шаблон ... в нём нерабочий трал ( только на пару где висит ) во вторых довльно таки мягкие условия на вход..трал для всех 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;
}



 

Привет всем!

Я ток что из отпуска...

Море солнце и вода наши лучшие друзья

Отдашнувши, готов продолжить работу...

Предлагаю выдвинуть конкретную тему над которой будем работать!

 
sllawa3 писал(а) >>

во первых это шаблон ... в нём нерабочий трал ( только на пару где висит ) во вторых довльно таки мягкие условия на вход..трал для всех 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;
}

Спасибо за разяснения, но то что ты скинил я далек от этого и не знаю куда поставить даже.

 

RomanS >>:

Привет всем!

Я ток что из отпуска...

Море солнце и вода наши лучшие друзья

Отдашнувши, готов продолжить работу...

Предлагаю выдвинуть конкретную тему над которой будем работать!


Можно попробовать пробой "утреннего флета"... или попробовать просто свой флет ставить.. 20пп, 50пп.. любой (выставляем 2 отложенника)... при срабатывании одного отложенника обратный ставить с удвоением.. Выбрать часы работы.. в итоге доолжно всё выйти в плюс.. При достижении профита.. например 100usd фиксим прибыль и закрываем все ордера..)

А если написать функцию закрытия встречними ордерами, то буит вообще красивая история..)

 
RomanS писал(а) >>

Привет всем!

Я ток что из отпуска...

Море солнце и вода наши лучшие друзья

Отдашнувши, готов продолжить работу...

Предлагаю выдвинуть конкретную тему над которой будем работать!

Могу предложить вам написать советник по этой стратегии, в документе Bookkeeper. Все остальное что нужно тоже находить в архиве.

Файлы:
kmqjldjbj.rar  603 kb
Причина обращения: