[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 457
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
нормализуйте ваши _lots
Благодарю! Помогло.
Здравствуйте! У меня вопрос относительно экспорта данных в Excel. Мне нужно, что индикатор (ну или скрипт) в начале каждого дня автоматически экспортировал в Excel текущие значения "Баланса", "Средств" и т.д. Не подскажите как это реализовать? Ну или хотя бы где почитать на эту тему. Поиск не дал результатов, поэтому обращаюсь тут. Спасибо.
Можно сохранять экспертом файл csv, эксель вполне успешно его обработает.
А не подскажите как это делается? И где об этом узнать по-подробнее. Спасибо.
подскажите, как сделать, что бы вшитый индикатор в советник, не рисовался на графике?
тоесть что бы линии индиктаора не рисовались на графике. Индикатор вызывается вот так:
https://docs.mql4.com/ru/files
подскажите, как сделать, что бы вшитый индикатор в советник, не рисовался на графике?
тоесть что бы линии индиктаора не рисовались на графике. Индикатор вызывается вот так:
в ходе тестирования советника выдается ошибка 130- неверные стопы. В функцию NewOrder должны передаваться внешние переменные TakeProfit и StopLoss и как мне кажется я все для этого предпринял, но как показывает print- передаются нули. Как я нонимаю причина ошибки кроется сдесь, но как ее устранить поять пока не смог. Прошу вашей помощи.
extern int TakeProfit=100;
extern int StopLoss=100;
....................................
if(KVADRAT==1)
{
double Lot=GetLot(MaxRisk);
Print("Lot=",Lot);
if(Lot==0)
{
Print("недостаточно средств");
return(0);
}
NewOrder(OP_BUYSTOP, Lot, TakeProfit, StopLoss);
NewOrder(OP_SELLSTOP, Lot, TakeProfit, StopLoss);
KVADRAT=0;
}
.....................................
//+---------Функция расчета лота---------------------------------------+
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,int TakeProfit,int StopLoss)
{
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_BUY)
{
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_SELL)
{
PR=NormalizeDouble(Bid, Digits);
if(TakeProfit>0)TP=NormalizeDouble(Bid-TakeProfit*Point,Digits);
if(StopLoss>0) SL=NormalizeDouble(Ask+StopLoss*Point,Digits);
}
Print("TakeProfit=",TakeProfit," StopLoss=",StopLoss," StopLevel=",MarketInfo(Symbol(),MODE_STOPLEVEL));
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);
}
Поколдуй с этой функцией
*ушёл колдовать*