Помощь в кодировании - страница 439

 
neverbeast:
Еще раз здравствуйте.

Я сделал простой индикатор со стрелками. К сожалению, он не рисует их так, как я хотел. Моей целью было показать стрелку, когда условия выполнены, но когда условия больше не выполняются, он должен удалить эту стрелку. В качестве примера: На 15 секунде текущей свечи условия выполнены и он рисует стрелку, затем она меняет направление и условия больше не выполняются, поэтому он должен удалить эту стрелку до закрытия текущей свечи. В настоящее время он рисует стрелки, когда условия выполнены и не перерисовывает их вообще, плюс есть стрелки истечения срока действия, показывающие, перешел ли он в ITM или OTM/ATM, которые вообще не рисуются до обновления. Не мог бы кто-нибудь взглянуть и помочь мне исправить это, пожалуйста?

6s.mq4

У вас в коде вообще нет проверки на первые 15 секунд. Почему бы вам не добавить эту проверку?

 
mladen:
У вас в коде вообще нет проверки на первые 15 секунд. Почему бы вам не добавить эту проверку.

Виноват. Это была другая версия того индикатора, который я описывал здесь. В любом случае, я новичок в кодировании mql4 и понятия не имею, как это сделать. Не могли бы вы написать этот кусок кода с небольшим туториалом, как он работает?

 
neverbeast:
Виноват. Это была другая версия того индикатора, который я описывал здесь. В любом случае, я новичок в кодировании mql4 и понятия не имею, как это сделать. Не могли бы вы написать этот кусок кода с небольшим туториалом, как он работает?

Вы можете сделать следующее:

if (TimeCurrent()-Time[0])>15) return(0);

Поместите его в начало процедуры start() (как первую строку в ней), и он предотвратит выполнение остального кода, если количество секунд, прошедших от начала текущей свечи, больше 15.

 

У меня есть код для советника, но мои навыки -.....none. Пытался скомпилировать его, убрать ошибки, но безуспешно.

Кто-нибудь может помочь?

//|$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ // Price Action V1 // hodhabi@gmail.com //|$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ #define NL "\n" extern double Lots = 1; extern double TP = 100; extern int TradeType = 0; // 0 - следовать тренду, 1 - принудительно покупать, 2 - принудительно продавать extern int leverage = 5; extern double MaximumLossinMoney = 1000; extern int MagicNumber = 250346; extern bool UseAlerts = false; //+-------------+ //| Custom init | //|-------------+ int init() { } //+----------------+ //| Custom DE-init | //+----------------+ int deinit() { } void sendEmail() { if (UseAlerts==true) SendMail("YTF Alert", "New order has been added "+OrdersTotal()+" Balance = " +AccountBalance() + " Equity = "+AccountEquity() +" Current Price: " + Close[0]); return; } void DrawHorizentalLine() { ObjectCreate("TProfit", OBJ_HLINE, 0, Time[1], Close[0]+500*Point); ObjectSet("Tprofit", OBJPROP_STYLE, STYLE_SOLID); ObjectSet("Tprofit", OBJPROP_COLOR, MediumSeaGreen); } //+------------------------------------------------------------------------+ //| Закрывает все //+------------------------------------------------------------------------+ void CloseAll() { for(int i=OrdersTotal()-1;i>=0;i--) { OrderSelect(i, SELECT_BY_POS); bool result = false; if ( OrderType() == OP_BUY && OrderMagicNumber()== MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red ); if ( OrderType() == OP_SELL && OrderMagicNumber()==MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red ); if (UseAlerts) PlaySound("alert.wav"); } return; } void CloseAllBuy() { for(int i=OrdersTotal()-1;i>=0;i--) { OrderSelect(i, SELECT_BY_POS); bool result = false; if ( OrderType() == OP_BUY && OrderMagicNumber()==MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red ); if (UseAlerts) PlaySound("alert.wav"); } return; } void CloseAllSell() { for(int i=OrdersTotal()-1;i>=0;i--) { OrderSelect(i, SELECT_BY_POS); bool result = false; if ( OrderType() == OP_SELL && OrderMagicNumber()==MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red ); if (UseAlerts) PlaySound("alert.wav"); } return; } //+------------------------------------------------------------------------+ //| отменяет все ордера, находящиеся в прибыли //+------------------------------------------------------------------------+ //+------------------------------------------------------------------------+ //+------------------------------------------------------------------------+ //| отменяет все отложенные ордера //+------------------------------------------------------------------------+ //+-----------+ //| Main | //+-----------+ int start() { int OrdersBUY, ticket; int OrdersSELL; double BuyLots, SellLots, BuyProfit, SellProfit; //+------------------------------------------------------------------+ // Определяем цену последнего ордера | //-------------------------------------------------------------------+ if(OrdersTotal()==0 && TradeType ==1 ) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-TP*Point,Ask+leverage*TP*Point, "MLTrendETF",MagicNumber,0,Green); TradeType=2; if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) sendEmail(); } else Print("Ошибка открытия ордера BUY : ",GetLastError()); return(0); } if(OrdersTotal()==0 && TradeType ==2) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+TP*Point,Bid-TP*leverage*Point, "MLTrendETF",MagicNumber,0,Green); TradeType = 1; if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) sendEmail(); } else Print("Ошибка открытия ордера BUY : ",GetLastError()); return(0); } } // start()

 

Извините, здесь не все в перемешку

//|$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ // Price Action V1 // hodhabi@gmail.com //|$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ #define NL "\n" extern double Lots = 1; extern double TP = 100; extern int TradeType = 0; // 0 - следовать тренду, 1 - принудительно покупать, 2 - принудительно продавать extern int leverage = 5; extern double MaximumLossinMoney = 1000; extern int MagicNumber = 250346; extern bool UseAlerts = false; //+-------------+ //| Custom init | //|-------------+ int init() { } //+----------------+ //| Custom DE-init | //+----------------+ int deinit() { } void sendEmail() { if (UseAlerts==true) SendMail("YTF Alert", "New order has been added "+OrdersTotal()+" Balance = " +AccountBalance() + " Equity = "+AccountEquity() +" Current Price: " + Close[0]); return; } void DrawHorizentalLine() { ObjectCreate("TProfit", OBJ_HLINE, 0, Time[1], Close[0]+500*Point); ObjectSet("Tprofit", OBJPROP_STYLE, STYLE_SOLID); ObjectSet("Tprofit", OBJPROP_COLOR, MediumSeaGreen); } //+------------------------------------------------------------------------+ //| Закрывает все //+------------------------------------------------------------------------+ void CloseAll() { for(int i=OrdersTotal()-1;i>=0;i--) { OrderSelect(i, SELECT_BY_POS); bool result = false; if ( OrderType() == OP_BUY && OrderMagicNumber()== MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red ); if ( OrderType() == OP_SELL && OrderMagicNumber()==MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red ); if (UseAlerts) PlaySound("alert.wav"); } return; } void CloseAllBuy() { for(int i=OrdersTotal()-1;i>=0;i--) { OrderSelect(i, SELECT_BY_POS); bool result = false; if ( OrderType() == OP_BUY && OrderMagicNumber()==MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red ); if (UseAlerts) PlaySound("alert.wav"); } return; } void CloseAllSell() { for(int i=OrdersTotal()-1;i>=0;i--) { OrderSelect(i, SELECT_BY_POS); bool result = false; if ( OrderType() == OP_SELL && OrderMagicNumber()==MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red ); if (UseAlerts) PlaySound("alert.wav"); } return; } //+------------------------------------------------------------------------+ //| отменяет все ордера, находящиеся в прибыли //+------------------------------------------------------------------------+ //+------------------------------------------------------------------------+ //+------------------------------------------------------------------------+ //| отменяет все отложенные ордера //+------------------------------------------------------------------------+ //+-----------+ //| Main | //+-----------+ int start() { int OrdersBUY, ticket; int OrdersSELL; double BuyLots, SellLots, BuyProfit, SellProfit; //+------------------------------------------------------------------+ // Определяем цену последнего ордера | //-------------------------------------------------------------------+ if(OrdersTotal()==0 && TradeType ==1 ) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-TP*Point,Ask+leverage*TP*Point, "MLTrendETF",MagicNumber,0,Green); TradeType=2; if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) sendEmail(); } else Print("Ошибка открытия ордера BUY : ",GetLastError()); return(0); } if(OrdersTotal()==0 && TradeType ==2) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+TP*Point,Bid-TP*leverage*Point, "MLTrendETF",MagicNumber,0,Green); TradeType = 1; if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) sendEmail(); } else Print("Ошибка открытия ордера BUY : ",GetLastError()); return(0); } } // start()

 
godrich:
Извините, здесь не все в перемешку //|$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ // Price Action V1 // hodhabi@gmail.com //|$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ #define NL "\n" extern double Lots = 1; extern double TP = 100; extern int TradeType = 0; // 0 - следовать тренду, 1 - принудительно покупать, 2 - принудительно продавать extern int leverage = 5; extern double MaximumLossinMoney = 1000; extern int MagicNumber = 250346; extern bool UseAlerts = false; //+-------------+ //| Custom init | //|-------------+ int init() { } //+----------------+ //| Custom DE-init | //+----------------+ int deinit() { } void sendEmail() { if (UseAlerts==true) SendMail("YTF Alert", "New order has been added "+OrdersTotal()+" Balance = " +AccountBalance() + " Equity = "+AccountEquity() +" Current Price: " + Close[0]); return; } void DrawHorizentalLine() { ObjectCreate("TProfit", OBJ_HLINE, 0, Time[1], Close[0]+500*Point); ObjectSet("Tprofit", OBJPROP_STYLE, STYLE_SOLID); ObjectSet("Tprofit", OBJPROP_COLOR, MediumSeaGreen); } //+------------------------------------------------------------------------+ //| Закрывает все //+------------------------------------------------------------------------+ void CloseAll() { for(int i=OrdersTotal()-1;i>=0;i--) { OrderSelect(i, SELECT_BY_POS); bool result = false; if ( OrderType() == OP_BUY && OrderMagicNumber()== MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red ); if ( OrderType() == OP_SELL && OrderMagicNumber()==MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red ); if (UseAlerts) PlaySound("alert.wav"); } return; } void CloseAllBuy() { for(int i=OrdersTotal()-1;i>=0;i--) { OrderSelect(i, SELECT_BY_POS); bool result = false; if ( OrderType() == OP_BUY && OrderMagicNumber()==MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red ); if (UseAlerts) PlaySound("alert.wav"); } return; } void CloseAllSell() { for(int i=OrdersTotal()-1;i>=0;i--) { OrderSelect(i, SELECT_BY_POS); bool result = false; if ( OrderType() == OP_SELL && OrderMagicNumber()==MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red ); if (UseAlerts) PlaySound("alert.wav"); } return; } //+------------------------------------------------------------------------+ //| отменяет все ордера, находящиеся в прибыли //+------------------------------------------------------------------------+ //+------------------------------------------------------------------------+ //+------------------------------------------------------------------------+ //| отменяет все отложенные ордера //+------------------------------------------------------------------------+ //+-----------+ //| Main | //+-----------+ int start() { int OrdersBUY, ticket; int OrdersSELL; double BuyLots, SellLots, BuyProfit, SellProfit; //+------------------------------------------------------------------+ // Определяем цену последнего ордера | //-------------------------------------------------------------------+ if(OrdersTotal()==0 && TradeType ==1 ) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-TP*Point,Ask+leverage*TP*Point, "MLTrendETF",MagicNumber,0,Green); TradeType=2; if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) sendEmail(); } else Print("Ошибка открытия ордера BUY : ",GetLastError()); return(0); } if(OrdersTotal()==0 && TradeType ==2) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+TP*Point,Bid-TP*leverage*Point, "MLTrendETF",MagicNumber,0,Green); TradeType = 1; if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) sendEmail(); } else Print("Ошибка открытия ордера BUY : ",GetLastError()); return(0); } } // start()

богач

можете ли вы прикрепить файл mq4.

Таким образом, он будет непригоден для использования при вставке в метаэдитор.

 

Не уверен, что это сработало, но...

Файлы:
pac.mq4  5 kb
 

Здравствуйте.

Я только что нашел индикатор PetD, который рисует красную или зеленую линию над моей свечой. Меня интересует, есть ли возможность сделать вместо этого полосу цветной гистограммы.

Чтобы у меня было отдельное окно с зеленой или красной полосой.

Спасибо

pet-d_full_option.mq4

Файлы:
 
NWFstudent:
Привет.

Я только что нашел индикатор PetD, который рисует красную или зеленую линию над моей свечой. Меня интересует, есть ли возможность сделать вместо этого полосу цветной гистограммы.

Таким образом, я могу иметь отдельное окно с зеленой или красной полосой.

Спасибо

pet-d_full_option.mq4

NWFstudent

Вот этот тип: pet-d_full_option_-_separate.mq4

Файлы:
 
makototokyo:
Здравствуйте,

этот индикатор, похоже, не очень хорошо оповещает. Мне кажется, что он подает сигнал только один раз после запуска mt4, а после первого сигнала он не издает звука. Я также понял, что он издает звук только когда бар "кульминационный"... но я хочу, чтобы он издавал звук, когда бар "поднимается".

Может ли кто-нибудь исправить этот код для индикатора объема?

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

Заранее спасибо.

Makototokyo, изменил оповещения в версии с отдельным окном, чтобы использовать оповещения "bull rising and bear rising", и они должны работать правильно в этой версии.

Причина обращения: