А?
//+------------------------------------------------------------------+ //| Tralling.mq4 | //| CoreWinTT | //| http://truetrade.ucoz.net/ | //+------------------------------------------------------------------+ #property copyright "CoreWinTT" #property link "http://truetrade.ucoz.net/" //---- input parameters extern int ТралингСтоп=18; extern color Color_On = Aqua; extern color Color_Off = Purple; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { int МинимальныйСтоп= MarketInfo(Symbol(),MODE_STOPLEVEL) ; int СопровождающийСтоп; button(1,"On"); button(2,"Min"); if (buttonget(2)) СопровождающийСтоп = МинимальныйСтоп; else СопровождающийСтоп = ТралингСтоп; if (buttonget(1)) TralStop(СопровождающийСтоп); return(0); } void TralStop (int СопровождающийСтоп) { //---- int Total = OrdersTotal()-1; for(int i = Total; i >= 0; i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false) break; if(OrderSymbol()== Symbol()) { //---tral for buy это бид if(СопровождающийСтоп>0 && OrderType() == 0) { if((Bid-OrderOpenPrice())>(Point*СопровождающийСтоп)) { if((OrderStopLoss() < (Bid-Point*СопровождающийСтоп)) || (OrderStopLoss()==0)) { OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*СопровождающийСтоп,OrderTakeProfit(),0,CLR_NONE); return(0); } } } // //---tral for sell if(СопровождающийСтоп>0 && OrderType() == 1) { if((OrderOpenPrice()-Ask)>(Point*СопровождающийСтоп)) { if((OrderStopLoss()>(Ask+Point*СопровождающийСтоп)) || (OrderStopLoss()==0)) { OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*СопровождающийСтоп,OrderTakeProfit(),0,CLR_NONE); return(0); } } } // } } //---- } //+------------------------------------------------------------------+ bool button(int Pozz,string text) { bool SNDFX=false; string name ="button"+Pozz; if ( ObjectFind(name) != -1 ) { //--- int X_shift = ObjectGet(name, OBJPROP_XDISTANCE); color x_color = ObjectGet(name, OBJPROP_COLOR); if (x_color == Color_On) SNDFX = true; else SNDFX = false; if (!(X_shift == 5 || X_shift == 20)) { if (SNDFX) SNDFX = false; else SNDFX = true; } } //--- ObjectCreate(name, OBJ_LABEL, 0, 0, 0);// Создание объ. ObjectSet(name, OBJPROP_CORNER, 1); // Привязка угол ObjectSet(name, OBJPROP_YDISTANCE, 15+Pozz*15);// Координата y if (SNDFX){ ObjectSetText(name,text,9,"Arial Black",Color_On); ObjectSet(name, OBJPROP_XDISTANCE, 5);// Координата Х } else { ObjectSetText(name,text,9,"Arial Black",Color_Off); ObjectSet(name, OBJPROP_XDISTANCE, 5+15);// Координата Х } return(SNDFX); } bool buttonget(int Pozz) { bool SNDFX=false; string name ="button"+Pozz; if ( ObjectFind(name) != -1 ) { //--- color x_color = ObjectGet(name, OBJPROP_COLOR); if (x_color == Color_On) SNDFX = true; else SNDFX = false; } return(SNDFX); }вот тут через графическую штуку сделано
вставив блок "кнопка" и "получение статуса кнопки", в любой части
программы можно всегда создать кнопку и получить её статус по
порядковому номеру, кнопка сама выберет себе расположение согласно
своей позиции.
А по проще ничего не ту?
ну можно просто его удалить с чарта....
// 5. Функция включения/отключения эксперта. void ExpertEnabled(bool Switch) // TRUE - включить эксперт, FALSE - отключить эксперт. { int HandlWindow = WindowHandle(Symbol(), Period()); // Системный дескриптор окна. int HandlMT4; // Системный дескриптор окна МТ4. int HandlToolbar; // Системный дескриптор окна инструментов. // Массвы. int ArIntTemp[1]; // Временный массив. //---- if (Switch == true) // Если требуется разрешить работу эксперта. { if (!IsExpertEnabled()) // Разрешаем работу экспертов, если она была запрещена. { HandlMT4 = GetAncestor(HandlWindow, 2); HandlToolbar = GetDlgItem(HandlMT4, 0x63); ArIntTemp[0] = HandlToolbar; SendMessageA(HandlMT4, WM_COMMAND, 33020, ArIntTemp); } } else // Если требуется запретить работу эксперта. { if (IsExpertEnabled()) // Разрешаем работу экспертов, если она была запрещена. { HandlMT4 = GetAncestor(HandlWindow, 2); HandlToolbar = GetDlgItem(HandlMT4, 0x63); ArIntTemp[0] = HandlToolbar; SendMessageA(HandlMT4, WM_COMMAND, 33020, ArIntTemp); } } }
Ну, кто еще проще выложит? :))
Вчера, что бы не ждать когда откроется рынок и зная что будет гэп запустил такое. Рынок открылся, позиция открылась, советник отключился.
extern double Kot=1.3570; extern bool Work=true; extern double Lot=0.1; int start() { if (Work==false) return(0); if (Bid>=Kot) { int ret=OrderSend(Symbol(),OP_SELL,Lot,Bid,5,0,0,"",0,0,Red); if (ret>0)Work=false; } }Проще сделать будет сложно.

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь