помогите дописать эксперта

 

Открывает сделки только на покупку а нужна чтоб ещё и на продажу открывал.

//+------------------------------------------------------------------+
//| туды - сюды mq4 |
//| |
//| |
//+------------------------------------------------------------------+
#property copyright ""
#property link ""

//---- input parameters
extern int pnkt=5; // через какое количество пунктов откроется сделка ??
extern int tp=5; // прибыль
extern int sl=50; // стоп лосс
extern int risk=1; // ставка открытой позиции
double bs,ss;
string sc;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
if(!GlobalVariableCheck(StringConcatenate(Symbol(),"sw")))
GlobalVariableSet(StringConcatenate(Symbol(),"sw"),
MarketInfo(Symbol(),MODE_SWAPLONG)>
MarketInfo(Symbol(),MODE_SWAPSHORT));
if(!GlobalVariableCheck(StringConcatenate(Symbol(),"sl")))
GlobalVariableSet(StringConcatenate(Symbol(),"sl"),
MarketInfo(Symbol(),MODE_STOPLEVEL));
if(!GlobalVariableCheck("mml"))
GlobalVariableSet("mml",MarketInfo(Symbol(),MODE_MINLOT));
if(!GlobalVariableCheck("ld")){
if(GlobalVariableGet("mml")>=0.01&&GlobalVariableGet("mml")<=0. 09)
GlobalVariableSet("ld",2);
if(GlobalVariableGet("mml")>=0.1&&GlobalVariableGet("mml")<=0. 9)
GlobalVariableSet("ld",1);
if(GlobalVariableGet("mml")>=1)GlobalVariableSet("ld",0);
}
if(!GlobalVariableCheck("mxl"))
GlobalVariableSet("mxl",MarketInfo(Symbol(),MODE_MAXLOT));
if(!GlobalVariableCheck("lt"))
GlobalVariableSet("lt",MarketInfo(Symbol(),MODE_LOTSIZE));
if(!GlobalVariableCheck("al"))
GlobalVariableSet("al",AccountLeverage());
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert lots function |
//+------------------------------------------------------------------+
double lots()
{
double lot=NormalizeDouble(AccountEquity()/GlobalVariableGet("lt")
*GlobalVariableGet("al")/100*risk,GlobalVariableGet("ld"));
if(lot<GlobalVariableGet("mml"))lot=GlobalVariableGet("mml");
if(lot>GlobalVariableGet("mxl"))lot=GlobalVariableGet("mxl");
return(lot);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
sc=Symbol();
if(!GlobalVariableCheck(StringConcatenate(sc,"lp")))
GlobalVariableSet(StringConcatenate(sc,"lp"),Bid);
if(MathAbs(GlobalVariableGet(StringConcatenate(sc,"lp"))-Bid)>=Point*pnkt){
GlobalVariableSet(StringConcatenate(sc,"lp"),Bid);
if(GlobalVariableGet(StringConcatenate(sc,"sw"))==1){bs=0.0;
ss=Ask+MathMax(GlobalVariableGet(StringConcatenate(sc,"sw")),sl)*Point;}
if(GlobalVariableGet(StringConcatenate(sc,"sw"))==0){ss=0.0;
bs=Bid-MathMax(GlobalVariableGet(StringConcatenate(sc,"sw")),sl)*Point;}
OrderSend(sc,0,lots(),Ask,MathRound((Ask-Bid)/Point),
bs,Bid+Point*MathMax(tp,GlobalVariableGet(StringConcatenate(sc,"sl"))));
OrderSend(sc,1,lots(),Bid,MathRound((Ask-Bid)/Point),
ss,Ask-Point*MathMax(tp,GlobalVariableGet(StringConcatenate(sc,"sl"))));
}
//----
return(0);
}
//+------------------------------------------------------------------+

 
michell:

Открывает сделки только на покупку а нужна чтоб ещё и на продажу открывал

Проверьте, чтобы в свойствах экcперта стояло "Long & Short".
 
стоит сча часок потестю но пока тока бай ордера открывает
 
Логи посмотрите. Может там есть сообщение об ошибке.
 
да нет ошибок невыдает, может функции какой нехватает? или что то не так написано..
 
я Ваш советник в тестере проверял. Всё нормально. И баит, и селлит.
 
тогда наверное что то у меня в настройке клиента накосячино. . если клиент снести настройки сохранятся или нет? :)
Причина обращения: