[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 407
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
БАЗОВЫЕ флетовые... :-)
а также БАЗОВЫЕ трэндовые ))
если евр падает и дол падает, флэт
:-)
спрэды свопы учитывались в раздумьях?
на то что после фор...
Да уж.... "Исчерпывающий" ответ. У любого события должны быть причины. Профи, встречаясь с какими-то неполадками знают на что обращать внимания. Просмотрела несколько раз алгоритм, но не могу найти причину Вот и обращаюсь к профи за советом - в чём могут быть причины?
Пытаюсь открыть отложенные ордера вот таким образом:
//+---------Функция расчета лота---------------------------------------+
double GetLot(int Risk)
{
double Free=AccountFreeMargin();
double One_Lot=MarketInfo(Symbol(),MODE_MARGINREQUIRED);
double Min_Lot=MarketInfo(Symbol(),MODE_MINLOT);
double Max_Lot=MarketInfo(Symbol(),MODE_MAXLOT);
double Step=MarketInfo(Symbol(),MODE_LOTSTEP);
double Lot=MathFloor(Free*Risk/100/One_Lot/Step)*Step;
if(Lot<Min_Lot)Lot=Min_Lot;
if(Lot>Max_Lot)Lot=Max_Lot;
if(Lot*One_Lot>Free)return(0.0);
return(Lot);
}
//+----------Функция открытия ордера-----------------------------------+
int NewOrder(int Cmd,double Lot)
{
double TP=0;// тейкпрофит
double SL=0;// стоплос
double PR=0;// цена
while(!IsTradeAllowed())Sleep(100);
if(TakeProfit<MarketInfo(Symbol(),MODE_STOPLEVEL))
TakeProfit=MarketInfo(Symbol(),MODE_STOPLEVEL);
if(StopLoss<MarketInfo(Symbol(),MODE_STOPLEVEL))
StopLoss=MarketInfo(Symbol(),MODE_STOPLEVEL);
if(Cmd==OP_BUYSTOP)
{
PR=NormalizeDouble(Ask, Digits);
if(TakeProfit>0)TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);
if(StopLoss>0) SL=NormalizeDouble(Bid-StopLoss*Point,Digits);
}
if(Cmd==OP_SELLSTOP)
{
PR=NormalizeDouble(Bid, Digits);
if(TakeProfit>0)TP=NormalizeDouble(Bid-TakeProfit*Point,Digits);
if(StopLoss>0) SL=NormalizeDouble(Ask+StopLoss*Point,Digits);
}
tic=OrderSend(Symbol(),Cmd,Lot,PR,3,SL,TP,"",0,0,CLR_NONE);
if(tic<0)Print("шибка открытия ордера:",GetLastError()); Print("Cmd-",Cmd,"Lot=",Lot,"PR=",PR,"SL=",SL,"TP=",TP);
return(tic);
}
На что при проверке мне выдает:
2011.12.06 23:36:50 2010.01.06 16:19 Big Dog 1.01 EURUSD,M15: invalid lots amount for OrderSend function
2011.12.06 23:36:50 2010.01.06 16:19 Big Dog 1.01 EURUSD,M15: OrderSend error 4051
2011.12.06 23:36:51 2010.01.07 17:20 Big Dog 1.01 EURUSD,M15: шибка открытия ордера:405
2011.12.06 23:36:51 2010.01.07 17:20 Big Dog 1.01 EURUSD,M15: Cmd-5Lot=0PR=1.4316SL=1.4419TP=1.4216
Очевидно что то с расчетом лота, но вот что не пойму))) Подскажите пожалуйста
Да уж.... "Исчерпывающий" ответ. У любого события должны быть причины. Профи, встречаясь с какими-то неполадками знают на что обращать внимания. Просмотрела несколько раз алгоритм, но не могу найти причину Вот и обращаюсь к профи за советом - в чём могут быть причины?
Ну а индикатор где?! (гадаю на кофейной гуще тел.https://www.mql5.comhttps://www.mql5.com/ru/)
Ну если все перечислять, буквы закончатся.
continue break return смотрите есть прерывание фор и когда оно происходит. работает с открытием бара....
"встречаясь с какими-то неполадками знают на что обращать внимания" они не обращают внимание, а начинают отладку, начните и вы отладку своего индикатора, доп-им через принт (тем более с чужими и страниц так на 15, более 50 вызываемых функций...)
Здравствуйте.
Я создал массив:
Однако по какой-то причине его первое значение обнуляется (-10.09 становится равным 0). Я нашёл выход из ситуации, сделав так:
Подскажите, пожалуйста, в чём здесь дело? Очень хочу разобраться.
Заранее благодарю.
Здравствуйте.
Я создал массив:
Однако по какой-то причине его первое значение обнуляется (-10.09 становится равным 0). Я нашёл выход из ситуации, сделав так:
Подскажите, пожалуйста, в чём здесь дело? Очень хочу разобраться.
Заранее благодарю.
У меня не обнуляется с индексом = 0
2011.12.06 20:00:47 MA_TF AUDUSD,M30: Alert: -10.09
Вот проблемный участок кода:
Здесь существует выше описанная проблема: не прорисовывается линия, производная от значения -10.09 (она принимает значение MinAsia).
Вот проблемный участок кода:
туц
Пытаюсь открыть отложенные ордера вот таким образом:
//+---------Функция расчета лота---------------------------------------+
На что при проверке мне выдает:
2011.12.06 23:36:50 2010.01.06 16:19 Big Dog 1.01 EURUSD,M15: invalid lots amount for OrderSend function
2011.12.06 23:36:50 2010.01.06 16:19 Big Dog 1.01 EURUSD,M15: OrderSend error 4051
2011.12.06 23:36:51 2010.01.07 17:20 Big Dog 1.01 EURUSD,M15: шибка открытия ордера:405
2011.12.06 23:36:51 2010.01.07 17:20 Big Dog 1.01 EURUSD,M15: Cmd-5Lot=0PR=1.4316SL=1.4419TP=1.4216
Очевидно что то с расчетом лота, но вот что не пойму))) Подскажите пожалуйста