0
//+------------------------------------------------------------------+
//|                               Copyright © 2014, Хлыстов Владимир |
//|                                                cmillion@narod.ru |
//+------------------------------------------------------------------+
#property copyright "http://cmillion.narod.ru/" 
#property link "cmillion@narod.ru"
#property description "Советник выставляет всем ордерам стоплосс тейкпрофит и переводит их в безубыток"
//--------------------------------------------------------------------*/
extern int Stoploss = 100, //стоплосс
Takeprofit = 50, //тейкпрофит
NoLoss = 10, //перевод в безубыток, если 0, то нет перевода в безубыток
MinProfitNoLoss = 1, //минимальная прибыль при переводе вбезубыток
TrailingStop = 0, //трейлингстоп, если 0, то нет трейлинга
TrailingStart = 0, //когда включать тралл, например после достижения 40 п прибыл
StepTrall = 2, //шаг тралла — перемещать стоплосс не ближе чем StepTrall
Magic = 0; //магический номер ордера
//--------------------------------------------------------------------
int init()
{
DrawLABEL("Stoploss",StringConcatenate("Stoploss",Stoploss),5,15,Gray);
DrawLABEL("Takeprofit",StringConcatenate("Takeprofit",Takeprofit),5,35,Gray);
DrawLABEL("NoLoss",StringConcatenate("NoLoss",NoLoss," + ",MinProfitNoLoss),5,55,Gray);
DrawLABEL("TrailingStop",StringConcatenate("TrailingStop",TrailingStop," + ",TrailingStart," + ",StepTrall),5,75,Gray);
return(0);
}
//-------------------------------------------------------------------
int deinit()
{
ObjectDelete("Stoploss");
ObjectDelete("Takeprofit");
ObjectDelete("NoLoss");
ObjectDelete("TrailingStop");
return(0);
}
//--------------------------------------------------------------------
int start()
{
if (!IsTradeAllowed()) return(0);
int STOPLEVEL=MarketInfo(Symbol(),MODE_STOPLEVEL);
double OSL,OTP,OOP,StLo,SL,TP;
int tip;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()==Symbol()&& Magic==OrderMagicNumber())

{
tip = OrderType();
OSL = NormalizeDouble(OrderStopLoss(),Digits);
OTP = NormalizeDouble(OrderTakeProfit(),Digits);
OOP = NormalizeDouble(OrderOpenPrice(),Digits);
SL=OSL;TP=OTP;
if (tip==OP_BUY)
{
if (OSL==0 && Stoploss>=STOPLEVEL && Stoploss!=0 )
{
SL = NormalizeDouble(OOP-Stoploss * Point,Digits);
}
if (OTP==0 && Takeprofit>=STOPLEVEL && Takeprofit!=0)
{
TP = NormalizeDouble(OOP + Takeprofit * Point,Digits);
}
if (OSL<OOP && MinProfitNoLoss!=0 && MinProfitNoLoss>=STOPLEVEL)
{
StLo = NormalizeDouble(OOP+MinProfitNoLoss*Point,Digits);
if (StLo > OSL && StLo <= NormalizeDouble(OOP+ NoLoss * Point,Digits)) SL = StLo;
}
if (TrailingStop>=STOPLEVEL && TrailingStop!=0 && (Bid-OOP)/Point >= TrailingStart)
{
StLo = NormalizeDouble(Bid-TrailingStop*Point,Digits);
if (StLo>=OOP && StLo > OSL+StepTrall*Point) SL = StLo;
}
if (SL != OSL || TP != OTP)
{
if (!OrderModify(OrderTicket(),OOP,SL,TP,0,White)) Print("Error OrderModify",GetLastError());
}
}
if (tip==OP_SELL)
{
if (OSL==0 && Stoploss>=STOPLEVEL && Stoploss!=0)
{
SL = NormalizeDouble(OOP + Stoploss * Point,Digits);
}
if (OTP==0 && Takeprofit>=STOPLEVEL && Takeprofit!=0)
{
TP = NormalizeDouble(OOP-Takeprofit * Point,Digits);
}
if ((OSL>OOP || OSL==0) && NoLoss!=0 && NoLoss>=STOPLEVEL)
{
StLo = NormalizeDouble(OOP-MinProfitNoLoss*Point,Digits);
if ((StLo < OSL || OSL==0) && StLo >= NormalizeDouble(Ask + NoLoss * Point,Digits)) SL = StLo;
}
if (TrailingStop>=STOPLEVEL && TrailingStop!=0 && (OOP-Ask)/Point >= TrailingStart)
{
StLo = NormalizeDouble(Ask + TrailingStop*Point,Digits);
if (StLo<=OOP && (StLo < OSL-StepTrall*Point || OSL==0)) SL = StLo;
}
if (SL != OSL || TP != OTP)
{
if (!OrderModify(OrderTicket(),OOP,SL,TP,0,White)) Print("Error OrderModify",GetLastError());
}
}
}
}
}
return(0);
}
//--------------------------------------------------------------------
void DrawLABEL(string name, string Name, int X, int Y, color clr)
{
if (ObjectFind(name)==-1)
{
ObjectCreate(name, OBJ_LABEL, 0, 0, 0);
ObjectSet(name, OBJPROP_CORNER, 1);
ObjectSet(name, OBJPROP_XDISTANCE, X);
ObjectSet(name, OBJPROP_YDISTANCE, Y);
}
ObjectSetText(name,Name,12,clr);
}
//--------------------------------------------------------------------
avatar

Slava78

  • 16 марта 2020, 18:03
+1
if(wpr1<-30 && wpr2>-30 && wpr3>-70)
double wpr1 = iWPR(NULL,0,WPR1,Shift);
double wpr2 = iWPR(NULL,0,WPR1,Shift+1);
double wpr3 = iWPR(NULL,0,WPR2,Shift);
или так
double wpr1 = iWPR(NULL,0,30,Shift);
double wpr2 = iWPR(NULL,0,30,Shift+1);
double wpr3 = iWPR(NULL,0,180,Shift);
avatar

Slava78

  • 14 марта 2020, 18:54
+1

WPR 180 — будет номер 3
avatar

Slava78

  • 14 марта 2020, 17:31
0
ТЗ описывается примерно так:
Сигнал на продажу:
1.Параболик вверху над свечами
2.Цена в канале Энвелопес
3.Аллигатор — зеленая выше красной
4.Цена выше МА(61)
5.Красная линия вышла за пределы серой
6.ССИ(14) больше уровня 100
7.RVI(12) пересекается выше 0
Ожидание сигналов в течении 10 свечей. На покупку зеркальное отображение
avatar

Slava78

  • 13 марта 2020, 22:14
0
Забей название в поиск найдешь и 4 версию, только ех.4
avatar

Slava78

  • 13 марта 2020, 18:26
0
Для начала нужны по каждому индюку условия открытия ордеров, желательно на скринах. А уж потом туда добавлять*rabota* 
avatar

Slava78

  • 11 марта 2020, 19:51
0
«Дурачина ты, простофиля!
Не умел ты взять выкупа с рыбки!
Хоть бы взял ты с нее корыто
*relax* 
avatar

Slava78

  • 11 марта 2020, 17:45
+1
Отложка сколько должна висеть? До конца дня?
avatar

Slava78

  • 9 марта 2020, 18:43
+2
Глядь: опять перед ним землянка;
На пороге… хочу бесплатно *cry* 
А пред ним разбитое корыто.
avatar

Slava78

  • 9 марта 2020, 12:06
0
Ничего не сказала рыбка,
Лишь хвостом по воде плеснула
И ушла в глубокое море.
Долго у моря ждал он ответа,
Не дождался…
avatar

Slava78

  • 8 марта 2020, 11:33
0
*fool* Кто за такое возьмется? Попроще надо
avatar

Slava78

  • 7 марта 2020, 20:26
0
Было норм, кинул еще slava78.opentraders.ru/53731.html
avatar

Slava78

  • 7 марта 2020, 13:09
0
Большое спасибо *good* 
avatar

Slava78

  • 6 марта 2020, 19:26
0
Разрешить или нет байстоп и селлстоп
avatar

Slava78

  • 6 марта 2020, 06:38
0
Если не сложно, добавьте еще проверки на ошибки, как в этом советнике slava78.opentraders.ru/53703.html
avatar

Slava78

  • 5 марта 2020, 09:08
0
Нужен mq4 чтобы понять принцип, стоит ли он того чтобы делать по нему сову?
avatar

Slava78

  • 5 марта 2020, 08:18
+1
FiboTake можно не менять, просто увеличив получаем нужное
avatar

Slava78

  • 4 марта 2020, 12:23