Доработка ботов (советников, индикаторов)

Статус
Закрыто для дальнейших ответов.

Sergey55555555

Почетный гражданин
Тогда так.
PHP:
int last_order=OrderSelect(OrdersTotal()-1, SELECT_BY_POS);

Вставил в одном месте - для селл,

PHP:
  if(Ask<=(low-BreakPipsSell*Point))
    { 
    int last_order=OrderSelect(OrdersTotal()-1, SELECT_BY_POS);
    if(last_order>0)
      if(OrderSelect(last_order, SELECT_BY_TICKET) && OrderProfit()<0)
         if(TimeCurrent() - OrderCloseTime()<LossDealDelay*60)
            return(false);
    if(CloseForSignal) 
    close_all(true);

если ставлю и для бай пишет

'last_order' - variable already defined

скомпилировал, но пауза не работает.
 
Последнее редактирование:

1comrad

Местный житель
Мне тут даже и не ответили по индюкупост 7720 ...
сделаю ещё одну попытку... :D
Кто подскажет или поможет: как перенести лейбл к линии в сторону пунктов на 30 - 50
attachment.php
 

Вложения

  • Переместить лейбл.png
    Переместить лейбл.png
    9,4 КБ · Просмотры: 285

eevviill

Заблокирован
Вставил в одном месте - для селл,

PHP:
  if(Ask<=(low-BreakPipsSell*Point))
    { 
    int last_order=OrderSelect(OrdersTotal()-1, SELECT_BY_POS);
    if(last_order>0)
      if(OrderSelect(last_order, SELECT_BY_TICKET) && OrderProfit()<0)
         if(TimeCurrent() - OrderCloseTime()<LossDealDelay*60)
            return(false);
    if(CloseForSignal) 
    close_all(true);

если ставлю и для бай пишет

'last_order' - variable already defined

скомпилировал, но пауза не работает.
Второй раз надо без int
 

Novikov

Гуру форума
Уважаемые, пожалуйста, подскажите, в чем может быть причина - эксперт сегодня начал открывать ордера 0,01 лота начав серию с самого начала, а не продолжил серию ордеров уже открытую на прошлой неделе с минимальным лотом 0,1!?
Использовал 4 магика для каждой из 4х серий по отдельности.
eurcad-h1-alpari-limited.png

Уважаемые программисты, пожалуйста, пожалуйста, пожалуйста!!! :please:
Помогите!!! Советник просто заколебал! После перезагрузки терминала или компа, начинает открывать ордера 0,01, хоть в нем и указаны ордера 0,1 :not-good:
Добавьте проверку на уже открытые ордера, что бы он не открывал не известно что, а продолжал вести уже открытую серию ордеров по заданному мартингейлу! :please:
Буду очень признателен и заранее благодарю!

советник Exp_PairTrader v44.mq4
 

gek

Элитный участник
Ну вообщето он по уровням стопы ставит.
здесь
PHP:
err = OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,StopSell,ProfitSell,"",MAGICMA,0,Red);
меняй
ProfitSell на Bid-Take*Point

здесь
PHP:
err=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,StopBuy,ProfitBuy,"",MAGICMA,0,Blue);
ProfitBuy на Ask+Take*Point

И с самого начала пиши
PHP:
extern int Take = 23;

eevviill,сделай пожалуйста,чтобы я смог настраивать тейки.Я дуб в этом деле.o_o
 

meblivsim

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

Вложения

  • 2014-01-22_232310.png
    2014-01-22_232310.png
    2,7 КБ · Просмотры: 27

grimax

Элитный участник
Magic_Buy & Magic_Sell

Взрыв мозга, помогите народ...

Надо разделить позы в сове на Magic_Buy и Magic_Sell.

В этих кусках кода застрял, там стоит один магик для всех, как два впихать?

инициализация позиций:
//positions initialization
int cnt=0,OP=0,OS=0,OB=0,CS=0,CB=0;OP=0;for(cnt=0;cnt<OrdersTotal();cnt++){OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if((OrderType()==OP_SELL||OrderType()==OP_BUY)&&OrderSymbol()==Symbol()&&((OrderMagicNumber()==Magic)||Magic==0))OP=OP+1;}
if(OP>=1){OS=0; OB=0;}OB=0;OS=0;CB=0;CS=0;int SL=StopLoss;int TP=TakeProfit;

подсчет ордеров вроде:
//number of orders
int CntO(int Type,int Magic){int _CntO;_CntO=0;
for(int j=0;j<OrdersTotal();j++){OrderSelect(j,SELECT_BY_POS,MODE_TRADES);if(OrderSymbol()==Symbol()){
if((OrderType()==Type&&(OrderMagicNumber()==Magic)||Magic==0))_CntO++;}}return(_CntO);}

функция добавочных ордеров:
//add positions function
bool AddP(){int _num=0; int _ot=0;
for (int j=0;j<OrdersTotal();j++){if(OrderSelect(j,SELECT_BY_POS)==true && OrderSymbol()==Symbol()&&OrderType()<3&&((OrderMagicNumber()==Magic)||Magic==0)){
_num++;if(OrderOpenTime()>_ot) _ot=OrderOpenTime();}}if(_num==0) return(true);if(_num>0 && ((Time[0]-_ot))>0) return(true);else return(false);
 

Albertid11

Интересующийся
Нужна доработка

Отличная ручная система состоящая из двух индюков, 1 индикатор закидываем Williams Percent Range с периодом 150 и стохастик с периодом 25,3,3 Метод Ма: LW
Сигнал на продажу пересечение всех линий в зоне перекупленности, то обратный же сигнал и на покупку. Надо как то объеденить эти 2 индикатора в один и чтоб был 1 аллерт на 1 пересечении , если есть программисты добрый, сделайте, будьте добры)
может есть идеи чем отфильтровать, системка реально делает мани
 

eevviill

Заблокирован
Взрыв мозга, помогите народ...

Надо разделить позы в сове на Magic_Buy и Magic_Sell.

В этих кусках кода застрял, там стоит один магик для всех, как два впихать?

инициализация позиций:
//positions initialization
int cnt=0,OP=0,OS=0,OB=0,CS=0,CB=0;OP=0;for(cnt=0;cnt<OrdersTotal();cnt++){OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if((OrderType()==OP_SELL||OrderType()==OP_BUY)&&OrderSymbol()==Symbol()&&((OrderMagicNumber()==Magic)||Magic==0))OP=OP+1;}
if(OP>=1){OS=0; OB=0;}OB=0;OS=0;CB=0;CS=0;int SL=StopLoss;int TP=TakeProfit;

подсчет ордеров вроде:
//number of orders
int CntO(int Type,int Magic){int _CntO;_CntO=0;
for(int j=0;j<OrdersTotal();j++){OrderSelect(j,SELECT_BY_POS,MODE_TRADES);if(OrderSymbol()==Symbol()){
if((OrderType()==Type&&(OrderMagicNumber()==Magic)||Magic==0))_CntO++;}}return(_CntO);}

функция добавочных ордеров:
//add positions function
bool AddP(){int _num=0; int _ot=0;
for (int j=0;j<OrdersTotal();j++){if(OrderSelect(j,SELECT_BY_POS)==true && OrderSymbol()==Symbol()&&OrderType()<3&&((OrderMagicNumber()==Magic)||Magic==0)){
_num++;if(OrderOpenTime()>_ot) _ot=OrderOpenTime();}}if(_num==0) return(true);if(_num>0 && ((Time[0]-_ot))>0) return(true);else return(false);
Как всё хорошо видно. Сейчас потрачу 8 часов чтобы разобратся.
Надо в переменных 2 меджика сделать magic_b magic_s
и потом где надо сравнивать
if(OrderMagicNumber()==magic_b)
 
Статус
Закрыто для дальнейших ответов.

Отслеживают (859) Посмотреть

Верх