прошу помощи в дописании советника на несколько торговых пар...

 

Кто разбирается в языке, помогите дописать стандартный советник, что-бы он одновременно открывал позиции по 5-6 парам... Сколько читал про это и ковырялся с языком ничего не выходит... Или посоветуйте что делать? Заранее огромное спасибо! советник прилагается...



//+------------------------------------------------------------------+
//| Parabolic.mq4 |
//| Виталик |
//| wwwita@mail.ru |
//+------------------------------------------------------------------+
extern double Lots=0.1;
extern double Pip=5;
extern double MoveBack=3;
extern int chk=0;
extern double SL=20;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
double hi=High[1];
double lo=Low[1];
double EMA, EMA1, EMA2, EMA3;
int cnt=0, ticket, total;
EMA=iMA(0,0,5,0,MODE_EMA,PRICE_MEDIAN,1);
EMA1=iMA(0,0,10,0,MODE_EMA,PRICE_MEDIAN,1);
EMA2=iMA(0,0,5,0,MODE_EMA,PRICE_MEDIAN,0);
EMA3=iMA(0,0,10,0,MODE_EMA,PRICE_MEDIAN,0);
total=OrdersTotal();
if(total<1)
{
if(AccountFreeMargin()<(1000*Lots))
{
Print("У вас нет денег. Свободные средства = ", AccountFreeMargin());
return(0);
}
if(((EMA>EMA1) && (EMA2<EMA3)) || ((EMA<EMA1) && (EMA2>EMA3)))
{
chk=1;
Print("Позиция возможна!");
}
if(chk==1)
{
if(EMA3-EMA2>2*Point && Bid>=(lo+MoveBack*Point))
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,
"EMA position:",16385,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("Открыт ордер SELL : ",OrderOpenPrice());
chk=0;
}
else
{
Print("Ошибка открытия SELL ордера : ",GetLastError());
return(0);
}
}
if(EMA2-EMA3>2*Point && Ask<=(hi-MoveBack*Point))
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,
"EMA position:",16385,0,Green);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("Открыт ордер BUY : ",OrderOpenPrice());
chk=0;
}
else
{
Print("Ошибка открытия BUY ордера : ",GetLastError());
return(0);
}
}
}
return(0);
}
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && // это открытая позиция? OP_BUY или OP_SELL
OrderSymbol()==Symbol()) // инструмент совпадает?
{
if(OrderType()==OP_BUY) // открыта длинная позиция
{
// проверим, может уже пора закрываться?
if(Bid>=(OrderOpenPrice()+Pip*Point))
{
chk=0;
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // закрываем позицию
return(0); // выходим
}
if(Bid<=(OrderOpenPrice()-SL*Point))
{
chk=0;
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // закрываем позицию
return(0); // выходим
}
}
else // иначе это короткая позиция
{
// проверим, может уже пора закрываться?
if(Ask<=(OrderOpenPrice()-Pip*Point))
{
chk=0;
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // закрываем позицию
return(0); // выходим
}
if(Ask>=(OrderOpenPrice()+SL*Point))
{
chk=0;
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // закрываем позицию
return(0); // выходим
}
}
}
}
return(0);
}
//+------------------------------------------------------------------+
 

А повесить на эти 5-6 пар, ну предварительно доведя до рабочего состояния использование Magic, что мешает?

 
Figar0:

А повесить на эти 5-6 пар, ну предварительно доведя до рабочего состояния использования Magic, что мешает?

мешает непонимание что и как тут менять, т.к. плохо разбираюсь в коде...

 
Тогда начинай писать свой..., ибо копание в чужом коде без его понимания ни к чему не приведет.
 
xrust:
Тогда начинай писать свой..., ибо копание в чужом коде без его понимания ни к чему не приведет.

Да вроде-бы есть-же функции, которые можно вставить и все будет работать... понять-бы куда что вставлять... Вот я думаю может кому-нибудь это не сложно доделать...

 
serega740:
xrust:
Тогда начинай писать свой..., ибо копание в чужом коде без его понимания ни к чему не приведет.

Да вроде-бы есть-же функции, которые можно вставить и все будет работать... понять-бы куда что вставлять... Вот я думаю может кому-нибудь это не сложно доделать...

Не сложно, даже скучно, а вот просто вставить нельзя, надо хотя бы прочитать, но такой неструктурированный код - только глаза ломать считая скобки... Но может тут найдутся менее ленивые и более глазастые, чем я)

 
Figar0:
serega740:
xrust:
Тогда начинай писать свой..., ибо копание в чужом коде без его понимания ни к чему не приведет.

Да вроде-бы есть-же функции, которые можно вставить и все будет работать... понять-бы куда что вставлять... Вот я думаю может кому-нибудь это не сложно доделать...

Не сложно, даже скучно, а вот просто вставить нельзя, надо хотя бы прочитать, но такой неструктурированный код - только глаза ломать считая скобки... Но может тут найдутся менее ленивые и более глазастые, чем я)

Поднимите мне ве-е-еки-и!.. :) (С) Вий

 
Registr:
Figar0:
serega740:
xrust:
Тогда начинай писать свой..., ибо копание в чужом коде без его понимания ни к чему не приведет.

Да вроде-бы есть-же функции, которые можно вставить и все будет работать... понять-бы куда что вставлять... Вот я думаю может кому-нибудь это не сложно доделать...

Не сложно, даже скучно, а вот просто вставить нельзя, надо хотя бы прочитать, но такой неструктурированный код - только глаза ломать считая скобки... Но может тут найдутся менее ленивые и более глазастые, чем я)

Поднимите мне ве-е-еки-и!.. :) (С) Вий

это, простите, к чему?)))

 
Народ, ну помогите дописать! очень нужно... неудобно держать открытых 6 счетов...)
 
serega740:
Народ, ну помогите дописать! очень нужно... неудобно держать открытых 6 счетов...)

Сделайте один из этих 6-ти счетов реальным, заработайте денег и закажите доработку советника (если он прибыльный).
А если он убыточный, не морочьте людям голову.

ps: без обид ;)

 
komposter:
serega740:
Народ, ну помогите дописать! очень нужно... неудобно держать открытых 6 счетов...)

Сделайте один из этих 6-ти счетов реальным, заработайте денег и закажите доработку советника (если он прибыльный).
А если он убыточный, не морочьте людям голову.

ps: без обид ;)

А как вы думаете, сколько будет стоить эта доработка? если это не очень большая сумма, то я готов заплатить...

Причина обращения: