Здравствуйте программисты помогите пожалуйста доработать советник. Мне нужно добавить код в советник чтобы увеличивался Take Profit и стоп лосс, желательно в 1.5 раза. Если уже есть такое дайте ссылку. Заранее благодарен.
-
0
- Просмотров: 3224
- 23 октября 2015, 12:01
- laban
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!
Комментарии (16)
35 AM2 Сообщений: 16530 - Андрей
extern double TakeProfit = 20;
extern int Hour_Start =8;
extern int Hour_Stop =17;
extern double Ma1 = 9;
extern double Ma2 = 22;
extern double Lots = 0.01;
bool b=true, s=true;
//+------------------------------------------------------------------+
int start()
{
//---- go trading only for first tiks of new bar
if(Volume[0]<1 && Volume[0]>10 ) return;
//----
int p=0;
//---- get Indicatorrs
double ma1=iMA(NULL,0,Ma1,0,MODE_EMA,PRICE_CLOSE,1);
double ma2=iMA(NULL,0,Ma2,0,MODE_EMA,PRICE_CLOSE,1);
//----
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i, SELECT_BY_POS)==true)
{
if (OrderSymbol()!=Symbol() || OrderMagicNumber()!=MAGIC) continue;
if (OrderType()==OP_BUY || OrderType()==OP_SELL) p++;
}
}
//---- buy
if(ma1>ma2 && b && p<1)
{
if( Hour()>=Hour_Start && Hour()<Hour_Stop )
{
OrderSend(Symbol(),OP_BUY,Lots(),Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,"",MAGIC,0,Blue);
b=false;
s=true;
}
}
//---- sell
if(ma1<ma2 && s && p<1)
{
if( Hour()>=Hour_Start && Hour()<Hour_Stop )
{
OrderSend(Symbol(),OP_SELL,Lots(),Bid,3,Bid+StopLoss*Point,Bid-TakeProfit*Point,"",MAGIC,0,Red );
b=true;
s=false;
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
double Lots()
{
double Lot = Lots;
int total = OrdersHistoryTotal();
for (int i = 0; i < total; i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_HISTORY);
if (OrderSymbol()== Symbol() && OrderMagicNumber() == MAGIC)
{
if (OrderProfit() > 0)
{
Lot=Lots;
}
else
{
Lot=OrderLots() *2;
}
}
}
return(Lot);
}
//+------------------------------------------------------------------+StopLoss
2 laban Автор Сообщений: 16
Алгоритм 1)если по истории профит меньше 0 то увеличиваем СЛ и ТП в два разе.
2 laban Автор Сообщений: 16
35 AM2 Сообщений: 16530 - Андрей
35 AM2 Сообщений: 16530 - Андрей
2 laban Автор Сообщений: 16
Если вы владеете хотя бы начальными навыками мкл, то можете сделать все самостоятельно. На мой взгляд, вы просто не хотите думать.
35 AM2 Сообщений: 16530 - Андрей
последняя моя думка если я правильно понимаю вот такая
добаляю
void Stop()
{
bool sel=OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
{
if(OrderProfit()<0)
{
Lots=OrderLots() *1.5;
StopMode();
mode++;
}
if(OrderProfit()>0)
{
Lots= Lots;
}
}
return;
}
и еще что то надо обнулить m но как не понимаю. что бы переменная m не срабатывала. но где ее всунуть тоже не понимаю
Редактирован: 26 октября 2015, 15:17
2 laban Автор Сообщений: 16
35 AM2 Сообщений: 16530 - Андрей
35 AM2 Сообщений: 16530 - Андрей
2 laban Автор Сообщений: 16
www.opentraders.ru/downloads/906/
35 AM2 Сообщений: 16530 - Андрей
14 beton2011 Сообщений: 895
Да да, про таймфрейм еще не забудь!
35 AM2 Сообщений: 16530 - Андрей
2 laban Автор Сообщений: 16
Редактирован: 21 января 2016, 11:59
2 laban Автор Сообщений: 16
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий