почему глобальные
переменные Magic и тп в функции Trailing_Stop не видятся и просят объявить их тип,как бы не видя их как глобальные
переменные?
и какие нибудь еще ошибки есть ли в коде?
Наверное потому, что приоритетней переменная во взодящих параметрах
void Trailing_Stop(Magic,Dist,Symbol(),Shag,Isp_shag,Bezubitok)
И выделенное красным это что?
В объявлении функции должны быть указаны типы передаваемых ей аргументов. А в данном случае:
void Trailing_Stop(Magic,Dist,Symbol(),Shag,Isp_shag,Bezubitok)
указаны имена и значения.
Правильное объявление функции:
void Trailing_Stop(int Magic, int Dist, string symbol, int Shag, bool Isp_shag, bool Bezubitok)
Если в коде эту функцию Вы используете всего один раз и именно так, как указано, то параметры вообще не нужно передавать, можно оставить функцию без аргументов.
В объявлении функции должны быть указаны типы передаваемых ей аргументов. А в данном случае:
указаны имена и значения.
Правильное объявление функции:
Если в коде эту функцию Вы используете всего один раз и именно так, как указано, то параметры вообще не нужно передавать, можно оставить функцию без аргументов.
Исходя из контекста, еще правильнее объявить функцию
void Trailing_Stop()
Исходя из контекста, еще правильнее объявить функцию
А я как написал?
Если в коде эту функцию Вы используете всего один раз и именно так, как указано, то параметры вообще не нужно передавать, можно оставить
функцию без аргументов.
попробывал,но теперь ругается на вызов функции
Trailing_Stop (Magic,Dist,Symbol(),Shag,Isp_shag,Bezubitok);
в конце и пишет что wrong parametrs count
точнее вот в таком коде
//+------------------------------------------------------------------+ //| 1.mq4 | //| Copyright 2019, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2019, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property strict //+------------------------------------------------------------------+ //| Свойства советника | //+------------------------------------------------------------------+ extern int TakeProfit = 100; extern int StopLoss = 100; extern double Lots = 1.0; extern int V1 = 150; //Мин размер свечи 1 extern int V2 = 100; //Мин размер свечи 2 extern int XBar = 15; //Количество свечей для Volume extern int Magic = 123 ; extern int Dist = 50; extern int Shag = 50; extern bool Isp_shag = true; extern bool Bezubitok = true; datetime DTime; int OnInit() { //--- //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- } //+------------------------------------------------------------------+ void Trailing_Stop() { double dist, shag; if (Digits==3||Digits==5) {dist=Dist*10*Point;shag=Shag*10*Point;} else if (Digits==2||Digits==4) {dist=Dist*Point;shag=Shag*Point;} for (int pos=0; pos<OrdersTotal(); pos++) { OrderSelect(pos,SELECT_BY_POS,MODE_TRADES); if (OrderMagicNumber()==Magic&&OrderSymbol()==Symbol()) { if (OrderType()==OP_BUY) { if(!Isp_shag&&!Bezubitok&&NormalizeDouble(Ask-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits)) OrderModify(OrderTicket(),0,Ask-dist,OrderTakeProfit(),0,clrNONE); if (Isp_shag&&!Bezubitok&&NormalizeDouble(Ask-OrderOpenPrice(),Digits)>=NormalizeDouble(dist,Digits)&& NormalizeDouble(Ask-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits)) OrderModify(OrderTicket(),0,Ask-dist,OrderTakeProfit(),0,clrNONE); if(!Isp_shag&&Bezubitok&&NormalizeDouble(OrderStopLoss(),Digits)<NormalizeDouble(OrderOpenPrice(),Digits) &&NormalizeDouble(Ask-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits)) OrderModify(OrderTicket(),0,Ask-dist,OrderTakeProfit(),0,clrNONE); if(Isp_shag&&!Bezubitok&&NormalizeDouble(Ask-OrderOpenPrice(),Digits)>=NormalizeDouble(dist,Digits)&& NormalizeDouble(OrderStopLoss(),Digits)<NormalizeDouble(OrderOpenPrice(),Digits)&& NormalizeDouble(Ask-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits)) OrderModify(OrderTicket(),0,Ask-dist,OrderTakeProfit(),0,clrNONE); } if (OrderType()==OP_SELL) { if(!Isp_shag&&!Bezubitok&&NormalizeDouble(OrderStopLoss()-Bid,Digits)>NormalizeDouble(dist,Digits)) OrderModify(OrderTicket(),0,Bid+dist,OrderTakeProfit(),0,clrNONE); if (Isp_shag&&!Bezubitok&&NormalizeDouble(OrderOpenPrice()-Bid,Digits)>=NormalizeDouble(dist,Digits)&& NormalizeDouble(OrderStopLoss()-Bid,Digits)>NormalizeDouble(dist,Digits)) OrderModify(OrderTicket(),0,Bid+dist,OrderTakeProfit(),0,clrNONE); if(!Isp_shag&&Bezubitok&&NormalizeDouble(OrderStopLoss(),Digits)>NormalizeDouble(OrderOpenPrice(),Digits)&& NormalizeDouble(OrderStopLoss()-Bid,Digits)>NormalizeDouble(dist,Digits)) OrderModify(OrderTicket(),0,Bid+dist,OrderTakeProfit(),0,clrNONE); if(Isp_shag&&!Bezubitok&&NormalizeDouble(OrderOpenPrice()-Bid,Digits)>=NormalizeDouble(dist,Digits)&& NormalizeDouble(OrderStopLoss(),Digits)>NormalizeDouble(OrderOpenPrice(),Digits)&& NormalizeDouble(OrderStopLoss()-Bid,Digits)>NormalizeDouble(dist,Digits)) OrderModify(OrderTicket(),0,Bid+dist,OrderTakeProfit(),0,clrNONE); } } } /////////////////////////////////////Volume///////////////////////////////////////////////// int MaxVolumeBarIndex=iHighest(NULL,0,MODE_VOLUME,XBar,0); double VolumeBar=Volume[MaxVolumeBarIndex]; //////////////////////////////////////SELL////////////////////////////////////////////////// if( (iOpen(NULL,PERIOD_CURRENT,1)) > iClose(NULL,PERIOD_CURRENT,1) && (iOpen(NULL,PERIOD_CURRENT,2)) < iClose(NULL,PERIOD_CURRENT,2)) if(DTime!=iTime(NULL,PERIOD_CURRENT,1)) { if( (iOpen(NULL,PERIOD_CURRENT,1))-iClose(NULL,PERIOD_CURRENT,1)>=V1*Point) if( (iClose(NULL,PERIOD_CURRENT,2))-iOpen(NULL,PERIOD_CURRENT,2)>=V2*Point) if( (iOpen(NULL,PERIOD_H4,3))<iOpen(NULL,PERIOD_H4,7)) if( Volume[2]>= VolumeBar) if(DTime=iTime(NULL,PERIOD_CURRENT,1)) OrderSend(NULL,OP_SELL,Lots,Ask,3,High[2]+StopLoss*Point,Bid-TakeProfit*Point,Magic,0,0); Trailing_Stop (Magic,Dist,Symbol(),Shag,Isp_shag,Bezubitok); } }
на вызов функции Trailing_Stop пишет wrong parameters

- www.mql5.com
Если функция объявлена без аргументов, то и вызывать ее нужно без аргументов:
Trailing_Stop();

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
почему глобальные переменные Magic и тп в функции Trailing_Stop не видятся и просят объявить их тип,как бы не видя их как глобальные переменные?
и какие нибудь еще ошибки есть ли в коде?