Вопросы от "чайника" - страница 238

 
forward666: У меня при запуске робота сразу открывается позиция,которая явно не отражает реалии графика,соответственно она уходит в глубокий минус. Как сделать,что при запуске робота эта позиция не открывалась сразу?где в коде нужно что-то добавить?
"Робот"- это такое создание, в которое его создатель пичкает всё, что ему (создателю) вздумается и на что он (создатель) горазд. Если Вы считаете, что все остальные участники форума знают, чем понапичкан Ваш "робот", то это не совсем соответствует действительности. 
 
Yedelkin:
"Робот"- это такое создание, в которое его создатель пичкает всё, что ему (создателю) вздумается и на что он (создатель) горазд. Если Вы считаете, что все остальные участники форума знают, чем понапичкан Ваш "робот", то это не совсем соответствует действительности. 
верное замечание:)согласен полностью!:)
 
в нем нет ничего замысловатого!но вопрос все-таки остается:)
 
forward666: в нем нет ничего замысловатого!но вопрос все-таки остается:)
А не могли бы Вы применить Стилизатор в редакторе и затем вставить код правильно (кнопка SRC)? А то при отсутствии редактора под рукой - трудночитабельно.
MQL5.community - Памятка пользователя
MQL5.community - Памятка пользователя
  • 2010.02.23
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы недавно зарегистрировались и у вас возникли вопросы: Как вставить картинку в сообщение на форуме, как красиво оформить исходный код MQL5, где находятся ваши Личные сообщения? В этой статье мы подготовили для вас несколько практических советов, которые помогут быстрее освоиться на сайте MQL5.community и позволят в полной мере воспользоваться доступными функциональными возможностями.
 
forward666:
#include <Trade/Trade.mqh>
#include <Trade/SymbolInfo.mqh>
#include <Trade/PositionInfo.mqh>

CTrade Trade;
CSymbolInfo Sym;
CPositionInfo Pos;

//--- input parameters
//input double Lots = 0.1; /*Lots*/ // Объем позиции
input int Shift = 10; /*Shift*/ // Величина скачка цены для открытия позиции
input int Limit = 100; /*Limit*/ // Величина убытка в пунктах для закрытия позиции
input int Prof=10;
input int MA_Period=50; // Период Moving Average

int maHandle; // хэндл индикатора Moving Average
double maVal[3]; // статический массив для хранения значений индикатора Moving Average


bool first;
double a,b,Lots;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{

maHandle=iMA(NULL,0,MA_Period,2,MODE_SMA,PRICE_CLOSE);
if(maHandle<0)
{
Alert("Ошибка при создании индикаторов - номер ошибки: ",GetLastError(),"!!");
return(-1);
}

first=false;

if(!Sym.Name(_Symbol))
{
Alert("Ошибка инициализации CSymbolInfo, поворите попытку");
return(-1);
}

Print("Инициализация эксперта выполнена");

return(0);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
IndicatorRelease(maHandle);
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{

if(CopyBuffer(maHandle,0,0,3,maVal)<0)
{
Alert("Ошибка копирования буферов индикаторов - номер ошибки:",GetLastError());
return;
}

if(!Sym.RefreshRates())
{
return;
}

if(first)
{
a=Sym.Ask();
b=Sym.Bid();
first=false;
return;
}

Lots=AccountInfoDouble(ACCOUNT_FREEMARGIN)*0.66/1000/SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE);
Lots=MathMin(999,MathMax(1,Lots));
Lots=NormalizeDouble(Lots,2);


if(Pos.Select(_Symbol))
{
if(Pos.Profit()>2)
{
Trade.PositionClose(_Symbol,Sym.Spread()*2);
}
else
{
if(Pos.PositionType()==POSITION_TYPE_BUY)
{
if((Pos.PriceOpen()-Sym.Ask())/Sym.Point()>Limit)// || Sym.Bid()<maVal[0]-0.0005)
{
Trade.PositionClose(_Symbol,Sym.Spread()*2);

}
}
else if(Pos.PositionType()==POSITION_TYPE_SELL)
{
if((Sym.Bid()-Pos.PriceOpen())/Sym.Point()>Limit)// || Sym.Ask()>maVal[0]+0.0005)
{
Trade.PositionClose(_Symbol,Sym.Spread()*2);

}
}
}
}
else
{
if(b-Sym.Bid()>=Shift*Sym.Point() && maVal[0]>maVal[1] && maVal[1]>maVal[2] && Sym.Bid()<maVal[0])
{
Trade.SetDeviationInPoints(Sym.Spread()*2);
Trade.PositionOpen(_Symbol,ORDER_TYPE_SELL,Lots,Sym.Bid(),0,0,""); //Sym.Bid()+0.0030
// Trade.Sell(Lots,_Symbol,0,0,0,"");
Print(__FUNCTION__,"():Sell");
}
if(Sym.Ask()-a>=Shift*Sym.Point() && maVal[0]<maVal[1] && maVal[1]<maVal[2] && Sym.Ask()>maVal[0])
{
Trade.SetDeviationInPoints(Sym.Spread()*2);
Trade.PositionOpen(_Symbol,ORDER_TYPE_BUY,Lots,Sym.Ask(),0,0,""); //Sym.Ask()-0.0030
// Trade.Buy(Lots,_Symbol,0,0,0,"");
Print(__FUNCTION__,"():Buy");
}
}

a=Sym.Ask();
b=Sym.Bid();
}
//+------------------------------------------------------------------+

	          
 

 forward666:
 

Если надо вставить небольшой кусок кода жми на SRC как на рисунке и вставляй код. Если кода много, столько сколько вставил, то прикрепляй файл с кодом.

 

MQL5.community - Памятка пользователя
MQL5.community - Памятка пользователя
  • 2010.02.23
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы недавно зарегистрировались и у вас возникли вопросы: Как вставить картинку в сообщение на форуме, как красиво оформить исходный код MQL5, где находятся ваши Личные сообщения? В этой статье мы подготовили для вас несколько практических советов, которые помогут быстрее освоиться на сайте MQL5.community и позволят в полной мере воспользоваться доступными функциональными возможностями.
 
paladin800:

 

 forward666:
 

Если надо вставить небольшой кусок кода жми на SRC как на рисунке и вставляй код. Если кода много, столько сколько вставил, то прикрепляй файл с кодом.

 

Понял!
 
forward666:
Понял!
А у кого стилизатор есть под рукой,может подсказать,где ошибка,что позиция открывается сразу,непонятно в каком направлении и непонятно зачем?
 
forward666: А у кого стилизатор есть под рукой,может подсказать,где ошибка,что позиция открывается сразу,непонятно в каком направлении и непонятно зачем?
Так как с выкладыванием кода у Вас ничего не получилось, попробую вечером на своём компе посмотреть. А что такое "Стилизатор" - посмотрите по автоматической ссылке в Вашем сообщении. 
 
Yedelkin:
Так как с кодом ничего не получилось, попробую вечером на своём компе посмотреть. А что такое "Стилизатор" - посмотрите по ссылке. 

Спасибо!Если сможете подсказать что-нить,то будет супер!

А про стилизатор сейчас почитаю подробнее