Нужна помощь в написании советника. - страница 2

[Удален]  
4 параметра я правильно понел?







//+------------------------------------------------------------------+
//|                                      ????? ??????? ????-????.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:
Вот в этих строках, кажется, ошибка:

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;}

в функции MathMax уровень стоп-лоса в пунктах сравнивается с логическим значением ,
наверное должнобыть так:

if(GlobalVariableGet(StringConcatenate(sc,"sw"))==1){bs=0.0;
ss=Ask+MathMax(GlobalVariableGet(StringConcatenate(sc,"sl")),sl)*Point;}
if(GlobalVariableGet(StringConcatenate(sc,"sw"))==0){ss=0.0;
bs=Bid-MathMax(GlobalVariableGet(StringConcatenate(sc,"sl")),sl)*Point;}

хотя непонятно, какая связь между стопами и с свопом?
[Удален]  

советчик работает, на простом тесте по датам открывает пазицию тока на продажу

на демо счет посадил открывает позиции все, правда особенность в том что открывает позиции по движению рынка.

[Удален]  
michell:

советчик работает, на простом тесте по датам открывает пазицию тока на продажу

на демо счет посадил открывает позиции все, правда особенность в том что открывает позиции по движению рынка.


Стоп лосс неставится на ордер продажи.
[Удален]  
вот что у меня тварится
SIG-Demo.com
Login : 1000043286
Password   : gzd2evg
[Deleted]  
[Deleted]  
michell постучи, плиз, в аску 343452327