[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 594
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && // check for opened position
OrderSymbol()==lSymbol()) // check for symbol
{
?
Помогите с кодом плз! почему у меня вылетает в этом коде 138 ошибка??? да и при чем она вообще тут? сделки открываются, но при закрытии цены почему то не те, что такое? все просто. советкик через s свечей должен закрыть сделку а открывать при пробитии фрактала. заранее спасибо за совет
extern int s=5;
extern int stime=60;extern int lots=1;
extern int slippage=5;
extern double sl=NULL;
extern double tp=NULL;
double upfr,dnfr=0.0;//уровни последних фракталов
double tClose=NULL;
double tOpen=NULL;
int flag=0;
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()//открытие по пробитию и закрытие через s свечей
{
//----
upfr=iFractals(Symbol(),PERIOD_H1,MODE_UPPER,4);
dnfr=iFractals(Symbol(),PERIOD_H1,MODE_LOWER,4);
//ОТКРЫТИЕ ОРДЕРОВ ПО ПРОБИТИЮ
if(upfr>0 && High[1]>upfr && flag==0) //если фрактал вверх и уровень фрактала вверх превышен
{
tOpen=Time[0];
tClose=tOpen+s*stime*60;
OrderSend(Symbol(),OP_BUY,lots,Bid,slippage,sl,tp);
flag=1;
}
if(dnfr>0 && Low[1]<dnfr && flag==0)//если фрактал вниз и уровень фрактала принижен
{
tOpen=Time[0];
tClose=tOpen+s*stime*60;
OrderSend(Symbol(),OP_SELL,lots,Ask,slippage,sl,tp);
flag=1;
}
//ЗАКРЫТИЕ ОРДЕРОВ ПО ПРОШЕСТВИИ ПРОМЕЖУТКА ВРЕМЕНИ
if(Time[0]>=tClose )// если время перед закрытием прошло
{
Print("ФУНКЦИЯ ЗАКРЫТИЯ");
OrClose();
flag=0;
}
//----
return(0);
}
//+------------------------------------------------------------------+
//закрыть все ордера
void OrClose()
{
for(int i=OrdersTotal()-1;i>=1;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),lots,OrderOpenPrice(),0.0005);
}
}
return(0);
}
Помогите с кодом плз! почему у меня вылетает в этом коде 138 ошибка??? да и при чем она вообще тут? сделки открываются, но при закрытии цены почему то не те, что такое?
измените на
Доброго времени суток.
Помогите разобраться с открытием ордеров. Ставлю советника на демо счет, когда совершается условие на покупку или на продажу,то показывает 130 ошибку.
Вот функция открытия ордеров:
С расчетом лота все в порядке, проверял на другом советнике.
Демо счет у Альпари, тип Микро. тейк и стоп стоят 100 п., соотв. 10 пунктов, т.к. у Альпари 5-ти знак
Цену открытия нормализуйте
А как нормализовать её?
Так?
Если так, то ничего не меняется.
У меня мало опыта пока в програмированнии. Объясните пожалуйста, как нормализовать её?
добрый вечер. Вопрос такой, при закрытии части сделки советник как бы открывает новую сделку с новым тикетом. А магик у нового ордера остается прежним?