[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 457

 
sergeev:

нормализуйте ваши _lots

Благодарю! Помогло.
 
Здравствуйте! У меня вопрос относительно экспорта данных в Excel. Мне нужно, что индикатор (ну или скрипт) в начале каждого дня автоматически экспортировал в Excel текущие значения "Баланса", "Средств" и т.д. Не подскажите как это реализовать? Ну или хотя бы где почитать на эту тему. Поиск не дал результатов, поэтому обращаюсь тут. Спасибо.
 
Gerkl:
Здравствуйте! У меня вопрос относительно экспорта данных в Excel. Мне нужно, что индикатор (ну или скрипт) в начале каждого дня автоматически экспортировал в Excel текущие значения "Баланса", "Средств" и т.д. Не подскажите как это реализовать? Ну или хотя бы где почитать на эту тему. Поиск не дал результатов, поэтому обращаюсь тут. Спасибо.
Можно сохранять экспертом файл csv, эксель вполне успешно его обработает.
 
splxgf:
Можно сохранять экспертом файл csv, эксель вполне успешно его обработает.
А не подскажите как это делается? И где об этом узнать по-подробнее. Спасибо.
 
Gerkl:
А не подскажите как это делается? И где об этом узнать по-подробнее. Спасибо.
https://docs.mql4.com/ru/files
 

подскажите, как сделать, что бы вшитый индикатор в советник, не рисовался на графике?

тоесть что бы линии индиктаора не рисовались на графике. Индикатор вызывается вот так:

indikator_1=iMA(NULL,60,maTrendPeriodv_1,0,MODE_SMA,PRICE_CLOSE,0);
 
Спасибо. Хотя мне это мало о чем говорит, но будет разбираться.
 
belck:

подскажите, как сделать, что бы вшитый индикатор в советник, не рисовался на графике?

тоесть что бы линии индиктаора не рисовались на графике. Индикатор вызывается вот так:

indikator_1=iMA(NULL,60,maTrendPeriodv_1,0,MODE_SMA,PRICE_CLOSE,0);
Пока вы его сами на график не повесите, он не будет отражаться во время работы эксперта. Как у вас так получилось?
 

в ходе тестирования советника выдается ошибка 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);
}

 
DhP:
Поколдуй с этой функцией

*ушёл колдовать*