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

[Удален]  

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

//+------------------------------------------------------------------+
//| туды - сюды 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".
[Удален]  
стоит сча часок потестю но пока тока бай ордера открывает
 
Логи посмотрите. Может там есть сообщение об ошибке.
[Удален]  
да нет ошибок невыдает, может функции какой нехватает? или что то не так написано..
 
я Ваш советник в тестере проверял. Всё нормально. И баит, и селлит.
[Удален]  
тогда наверное что то у меня в настройке клиента накосячино. . если клиент снести настройки сохранятся или нет? :)