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() никогда не сработает
R
Vinin:
OrderSelect() никогда не сработает
OrderSelect() никогда не сработает
Как ето
for (int a=0;a<b;a++) //Запускаем цикл перебора ордеров в истории { if (a<b) // Если а (текущий выбраный ордер) меньше чем b (всего ордеров) continue; //запустить цикл заново дот ех пор пока a не будет равно b
OrderSelect (a, SELECT_BY_POS, MODE_HISTORY); //если а равно b тоесть выбран последний ордер то выбрать его с помощью ордер селекта
почему не сработает
а все все я понял
я перепутал continue с break
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
нужно что бы он открывал 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);