0
Всем СПАСИБО!!! Разобрался!!!
avatar

dima0603

  • 26 мая 2020, 17:53
0
//--- Inputs
extern double Lots = 0.1; // лот
extern double KLot = 1; // умножение лота
extern double MaxLot = 5; // максимальный лот
extern double StopLoss = 10000; // лось
extern double TakeProfit = 10000; // язь
extern int StartHour = 0; // час начала торговли
extern int StartMin = 30; // минута начала торговли
extern int EndHour = 23; // час окончания торговли
extern int EndMin = 30; // минута окончания торговли
extern int Shift = 1; // на каком баре сигнал индикатора
extern int Slip = 30; // реквот
extern int CloseSig = 1; // 1-закрытие по сигналу
extern int Magic = 123; // магик
extern bool Buy = true; // buy
extern bool Sell = true; // sell
extern double LevelDN = +9.5;
extern double LevelUP = -9.5;

extern string IndName = «MZ_channell»;

datetime t=0;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---

//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---

}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
{
int r=0;
color clr=Green;
double sl=0,tp=0;

if(type==1 || type==3 || type==5)
{
clr=Red;
if(StopLoss>0) sl=NormalizeDouble(price+StopLoss*Point,Digits);
if(TakeProfit>0) tp=NormalizeDouble(price-TakeProfit*Point,Digits);
}

if(type==0 || type==2 || type==4)
{
clr=Blue;
if(StopLoss>0) sl=NormalizeDouble(price-StopLoss*Point,Digits);
if(TakeProfit>0) tp=NormalizeDouble(price+TakeProfit*Point,Digits);
}

r=OrderSend(NULL,type,Lot(),NormalizeDouble(price,Digits),Slip,sl,tp,"",Magic,0,clr);
return;
}
//+------------------------------------------------------------------+
//| Check for close order conditions |
//+------------------------------------------------------------------+
void ClosePos()
{
int signal=Signal();

if(signal==-1)
{
CloseAll(0);
}

if(signal==1)
{
CloseAll(1);
}
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int Signal()
{
double buy = iCustom(NULL,0,IndName,2,Shift);
double sell = iCustom(NULL,0,IndName,3,Shift);
if( sell)return( -1);
if( buy)return( 1);
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CloseAll(int ot=-1)
{
bool cl;
for(int i=OrdersTotal()-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
{
if(OrderType()==0 && (ot==0 || ot==-1))
{
RefreshRates();
cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),Slip,White);
}
if(OrderType()==1 && (ot==1 || ot==-1))
{
RefreshRates();
cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),Slip,White);
}
}
}
}
}
//+------------------------------------------------------------------+
int CountTrades()
{
int count=0;
for(int i=OrdersTotal()-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
{
if(OrderType()<2) count++;
}
}
}
return(count);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
double Lot()
{
double lot=Lots;
for(int i=OrdersHistoryTotal()-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderProfit()>0) break;
if(OrderProfit()<0)
{
lot=OrderLots()*KLot;
break;
}
}
}
if(lot>MaxLot)lot=Lots;
return(lot);
}
//+------------------------------------------------------------------+
//| OnTick function |
//+------------------------------------------------------------------+
void OnTick()
{
int signal=Signal();

if( t!=Time[0])
{
if(signal== 1 ) PutOrder(0,Ask);
if(signal== -1) PutOrder(1,Bid);
if(CloseSig>0) ClosePos();
t=Time[0];
}
}
//+------------------------------------------------------------------+
avatar

dima0603

  • 26 мая 2020, 17:32
0
а как теперь прикрепить?
avatar

dima0603

  • 26 мая 2020, 17:31
0
извиняюсь, саму сову не прикрепил
avatar

dima0603

  • 26 мая 2020, 17:29
0
Андрей, добрый вечер!!! Извините, Вы не забыли?
avatar

dima0603

  • 24 мая 2020, 19:49
0
Спасибо ОГРОМНОЕ!!! Жду!
avatar

dima0603

  • 15 мая 2020, 23:49
0
Добрый день, Андрей! Вы посмотрите, что можно сделать?
avatar

dima0603

  • 15 мая 2020, 13:25
0
Добрый день, Андрей! Логика совы немного нарушена.
На скрине попытался обьяснить и еще на словах:
1) работаем по сигналу один раз — ДА — НЕТ ( т.е. появился сигнал со старшего ТФ(Н4)
ДА — вошли по сигналу, получили ТП и ждем обратного сигнала
НЕТ — вошли по сигналу, получили ТП, сразу открываем следующий ордер в том же
направлении и тем же лотом, до тех пор, пока не появится обрытный сигнал
со старшего ТФ — В ИТОГЕ ИМЕЕМ ОДИН ОРДЕР ЛОТОМ 0,1 В УБЫТКЕ!!!
2) при обратном сигнале ИМЕЕМ ОДИН ОРДЕР ЛОТОМ 0,1 В УБЫТКЕ!!! — открываем обратный
ордер ЛОТОМ*на коэфф(допустим 2) — имеем (например) один ордер BUY лотом 0,1 и
один ордер SELL лотом 0,2 — И ТЕПЕРЬ ДОЛИВАЕМСЯ ПО СИГНАЛАМ С МЛАДШЕГО ТФ ТЕМ ЖЕ
САМЫМ ЛОТОМ ( SELL1 (0.2), SELL2(0.2) и т.д) и ждем ЯЗЬ!!! — может быть два варианта
2.1) получили ЯЗЬ и снова обращаемся к пункту 1)
2.2) появился обратный сигнал и В ИТОГЕ ИМЕЕМ:
один — BUY(0.1)
два — SELL(0.2) и SELL(0.2)
открываем открываем обратный ордер BUY лотом (последий лот*на коэф) т.е. 0.4 и
ДОЛИВАЕМСЯ ПО СИГНАЛАМ С МЛАДШЕГО ТФ ТЕМ ЖЕ САМЫМ ЛОТОМ (BUY1(0.4), BUY2(0.4)
и так до пункта 2.1)
Когда в рынке один ордер, то доливки не нужны — работаем только по ТП
Когда в рынке есть противоположные ордера(BUY и SELL) работаем по ЯЗЬ
avatar

dima0603

  • 14 мая 2020, 13:30
0
Спасибо, Андрей!!!
avatar

dima0603

  • 14 мая 2020, 00:56
0
Спасибо огромное!!! Работает как надо!
avatar

dima0603

  • 13 мая 2020, 00:01
0
Спасибо, Андрей! Буду ждать!!!
avatar

dima0603

  • 8 мая 2020, 19:42
0
ТЗ
1) Имеется индикатор — SoeHoe.ID_Forex Darvas Pointer Indicator, его необходимо два раза добавить в советник
(SoeHoe.ID_Forex Darvas Pointer Indicator, SoeHoe.ID_Forex Darvas Pointer Indicator1 — как-то так).
2) Вход по двум индикаторам (например — SoeHoe.ID_Forex Darvas Pointer Indicator (Н4) — главный индикатор, т.е. старший ТФ — основной,
SoeHoe.ID_Forex Darvas Pointer Indicator (М15) — подтвержающий и доливочный) на следующем баре,
после совпадения двух индикаторов(скрин 1)
3) Выход — два варианта
3.1) по ТП и ждем обратного сигнала
3.2) по ТП, но торгуем дальше в сторону сигнала и так пока не пявится обратный сигнал — и в итоге, имеем один убыточный ордер
4) Итак, имеем убыточный ордер
4.1) по обратному сигналу открываем противоположный ордер обьемом равным обьему предыдущего ордера умноженного на мартин коэфф. и
по ходу движения доливаемся по доливочному индикатору(М15) тем же обьемом ( т.е. первый ордер был 0,1 (убыточный), обратный ордер
открываем обьемом = 0,1* на мартин коэфф и доливочные будут этим же обьемом) (скрин 2)
4.2) при получении профита переходим к пункту 3)
4.3) если профит не получили и появился обратный сигнал, то работаем по пункту 4) (например: был первый ордер бай обьемом 0,1,
при обратном сигнале открываем селл обьемом 0,1*мартин коэфф(допустим два)= 0,2 и еще доливаемся одним ордером тоже 0,2 в итоге имеем
один ордер бай — 0,1 лот и два ордера селл — 0,2 и 0,2 лота, профит не получили и появился обратный сигнал — тогда, открываем
ордер бай, обьемом 0,2* мартин кофф (2)= 0,4 и т.д.)

Параметры СОВЕТНИКА:
— пауза в торговле на открытие понедельника(минуты)
— использовать покупки(да нет- для выхода из торговли)
— использовать продажи(да нет- для выхода из торговли)
— торговый обьем ордера
— максимальный торговый обьем
— проскальзывание
— тейк профит
— мартин коэффициент
— магик
— комментарий
параметры индикатора SoeHoe.ID_Forex Darvas Pointer Indicator
— первые четыре из самого индикатора
параметры индикатора SoeHoe.ID_Forex Darvas Pointer Indicator1
— первые четыре из самого индикатора
avatar

dima0603

  • 8 мая 2020, 17:47
0
если что-то сделал не правильно, прошу сильно не пинать!!!
avatar

dima0603

  • 8 мая 2020, 17:45
0
Спасибо за то, что проявили интерес!!! Пока посмотрю, что получиться у Zmei37, а там может и попрошу нового советника!!!
avatar

dima0603

  • 8 мая 2020, 15:16
0
Zmei37, спасибо за участие!!! потестю и отпишусь!!!
avatar

dima0603

  • 8 мая 2020, 15:13
0
Спасибо, Андрей!!! Почти все пересмотрел, наверное на это не обращал внимание!!! И спасибо за ОТЛИЧНЫЙ сайт и ВАШУ помощь!!!
avatar

dima0603

  • 1 июня 2016, 18:31