Скачать MetaTrader 5

Помогите в коде вроде все правильно но не тот еффект

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
bountyhunter
127
bountyhunter  
Еффект тот что тестер открывает только Buy позиции не смотря на условия Sellесли поменять местами то только Sell

нужно что бы он открывал Buy или Sell по условию закрытия предыдущей сделки по ТП или по СЛ

Вот код

extern int TP=5;

extern int SL=5;

extern double lot=0.1;


int start()

{

int r=1,t=2;

int total=OrdersTotal();

if (total>0)

return;

if (closeTP(r)==true)

OrderSend (Symbol(),OP_BUY,lot,Ask,3,Bid-SL*Point,Bid+TP*Point,"Окрыта позиция на покупку",0,0,0);

if (closeTP(r)==false)

OrderSend (Symbol(),OP_SELL,lot,Bid,3,Ask+SL*Point,Ask-TP*Point,"Окрыта позиция на продажу",0,0,0);

return(0);

}

//+------------------------------------------------------------------+

bool closeTP (bool pos)


{

int b=OrdersHistoryTotal();

for (int a=0;a<b;a++)

{

if (a<b)

continue;

OrderSelect (a, SELECT_BY_POS, MODE_HISTORY);

}

if (OrderTakeProfit()==OrderClosePrice() && OrderType()==OP_BUY)

bool buy=true;

if (!OrderTakeProfit()==OrderClosePrice() && OrderType()==OP_BUY)

buy=false;

if (OrderTakeProfit()==OrderClosePrice() && OrderType()==OP_SELL)

bool sell=true;

if (!OrderTakeProfit()==OrderClosePrice() && OrderType()==OP_SELL)

sell=false;

if (buy==true && sell==false)

pos=true;

if (buy==false && sell==true)

pos=false;

return(pos);

Victor Nikolaev
Модератор
15910
Victor Nikolaev  
bool closeTP (bool pos)
{

   int b=OrdersHistoryTotal();

   for (int a=0;a<b;a++)
   {
      if (a<b)
         continue;
      OrderSelect (a, SELECT_BY_POS, MODE_HISTORY);
   }
OrderSelect() никогда не сработает
bountyhunter
127
bountyhunter  
R
Vinin:
OrderSelect() никогда не сработает

Как ето

 for (int a=0;a<b;a++)   //Запускаем цикл перебора ордеров в истории
   {
      if (a<b)		// Если а (текущий выбраный ордер) меньше чем b (всего ордеров)
         continue	//запустить цикл заново дот ех пор пока a   не будет равно b

OrderSelect (a, SELECT_BY_POS, MODE_HISTORY); //если а равно b тоесть выбран последний ордер то выбрать его с помощью ордер селекта

почему не сработает

bountyhunter
127
bountyhunter  

а все все я понял

я перепутал continue с break

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий