Я тут на основе prognozmm.xls и скрипта по ГУО(графическое управление) накидал скрипт,в помощь по авто-открытию трех ордеров.Просьба если кто может отправить на
OXOTHUK@inbox.ru правила открытия ордеров, а то что то не видно простому. НУ и к скрипту, там просто, сначала в Сервис ставишь подтверждение о торговле советником; примерно кидаешь скрипт на график; ставишь тип операции(Бай=0, Селл=1), если хочешь меняешь цвета будующих линий и можно изменить % стопа;ТЫКАЕШЬ НА ГРАФИК; перетаскиваешь линии на нужные места и ок, иначе он просто удалит именно то что нарисовал сам.
//+------------------------------------------------------------------+
//| ГУО_открытие_ордеров.mq4 |
//| МДВ ©2007. |
//|
http://www.OXOTHUK87@imbox.ru |
//+------------------------------------------------------------------+
#property copyright "МДВ ©2007."
#property link "
http://www.OXOTHUK87@imbox.ru"
#property show_inputs
extern string Tip = "+++++Бай=0+++Селл=1+++++++";
extern int Tip_operacii=0; //тип операции Бай=0 Селл=1
extern string Level_Color = "+++++Цвета_границ+++++++";
// Цвета отображения границ на графике:
extern color Up_Level_Color = Lime; //верхняя граница участка
extern color Down_Level_Color = DeepPink; // нижняя граница участка
extern string Open_Line_Color = "+++++Цвет_открытия_линии_свечи+++";
// Цвет линии открытия:
extern color Price_Open_Color = White;
extern string Vertical_Line = "+++++Цвет_вертикальной_линии+++";
// Цвет вертикальной линии:
extern color Vertical_Line_Color = Yellow;
// вторая часть скрипта посвещена открытию сделок:
extern int Procent_Stop_Lossa=33; //процент стоп лоса от прогноза
extern double Lot=0.1; //Величина лота
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
#include <WinUser32.mqh>
int start()
{
//----
int Box;
double Price_Open,Up_Level,Down_Level;
datetime Time_Verticali;
Print("++++++++++++++++++++++++++++++++++++++++++++");
delete();
//это вдруг если тип сделки неопределен:
if(Tip_operacii!=0 && Tip_operacii!=1)
{
Box=MessageBox("Tip_operacii должен быть\n"+" равен 0(Buy) либо 1(Sell)\n"+"Начать Заново"
,"Ошибка",0x00000000|0x00000010|0x00040000);
if(Box==1)return(-1);
}
//начальные параметры:
Price_Open=PriceOnDropped(); //узнали цену куда кинули скрипт мышью
if(Price_Open<=0)Price_Open=Ask+30*Point; //если меньше нуля то пусть будет Ask+30*Poin
Up_Level=Price_Open+50*Point; // просто установили премерные уровни
Down_Level=Price_Open-50*Point;
Time_Verticali=TimeOnDropped( ); //возвращает значение времени в точки бросания
//скрипта
//создание всевозможных линий:
//Линия открытия свечи:
ObjectCreate("Price_Open",OBJ_HLINE,0,0,Price_Open,0,0,0,0);
ObjectSet("Price_Open",OBJPROP_COLOR,Price_Open_Color);
ObjectSetText("Price_Open","Price_Open",7,"Arial",Price_Open_Color);
//Верхняя граница:
ObjectCreate("Up_Level",OBJ_HLINE,0,0,Up_Level,0,0,0,0);
ObjectSet("Up_Level",OBJPROP_COLOR,Up_Level_Color);
ObjectSetText("Up_Level","Up_Level",7,"Arial",Up_Level_Color);
//нижняя граница:
ObjectCreate("Down_Level",OBJ_HLINE,0,0,Down_Level,0,0,0,0);
ObjectSet("Down_Level",OBJPROP_COLOR,Down_Level_Color);
ObjectSetText("Down_Level","Down_Level",7,"Arial",Down_Level_Color);
//вертикальная линия, она просто вспомогательная:
ObjectCreate("Vertical",OBJ_VLINE,0,Time_Verticali,0,0,0,0,0);
ObjectSet("Vertical",OBJPROP_COLOR,Vertical_Line_Color);
//создание бокса:
string Text_Box="Сначала щелкните по графику.Перетащите \n"+"линии на нужные места и нажмите \"OK\".\n"
+"Для отказа от скрипта и удаления \n"+"нарисовавшихся линий нажмите \"Отмена\".";
Box=MessageBox(Text_Box,"Установка уравней",0x00000001|0x00000040|0x00040000);
if(Box!=1){delete();return(0);} //если отмена удаляем объекты, путем вызова ф-ии delete()
//Анализируем данные после перестановки линий:
Price_Open=NormalizeDouble(ObjectGet("Price_Open",OBJPROP_PRICE1),MarketInfo(Symbol(),MODE_DIGITS));
Up_Level=NormalizeDouble(ObjectGet("Up_Level",OBJPROP_PRICE1),MarketInfo(Symbol(),MODE_DIGITS));
Down_Level=NormalizeDouble(ObjectGet("Down_Level",OBJPROP_PRICE1),MarketInfo(Symbol(),MODE_DIGITS));
// это если верхняя граница вдруг окажется ниже других линий:
Print("Price_Open=",Price_Open," Up_Level=",Up_Level," Down_Level=",Down_Level);
if(Up_Level<=Price_Open ||Up_Level<=Down_Level )
{
Box=MessageBox("Неправильно установлена верхняя граница","Ошибка",0x00000005|0x00000010|0x00040000);
if(Box==4){ObjectsRedraw();start();}
delete();return(-1);
}
//часть скрипта отвечающая за расчет уравней стоп_лосса и тейк_профита и открытия сделок:
int ticket; //для открытия сделок
double prognoz; //прогнозируемое количество пунктов которое цена пройдет
double Stop_Loss,TP1,TP2,TP3; //стоп лосс,тейк профиты: первого ,второго и третьего уравня
prognoz=Up_Level-Down_Level;
Stop_Loss=prognoz/100*Procent_Stop_Lossa;
TP1=prognoz*0.382;
TP2=prognoz*0.618;
TP3=prognoz;
//округление:
Stop_Loss=NormalizeDouble(Stop_Loss,MarketInfo(Symbol(),MODE_DIGITS));
TP1=NormalizeDouble(TP1,MarketInfo(Symbol(),MODE_DIGITS));
TP2=NormalizeDouble(TP2,MarketInfo(Symbol(),MODE_DIGITS));
TP3=NormalizeDouble(TP3,MarketInfo(Symbol(),MODE_DIGITS));
// Если тип операции Бай:
if(Tip_operacii==0)
{
Print("Stop_Loss=",Price_Open-Stop_Loss," TP1=",Price_Open+TP1);
Print("Stop_Loss=",Price_Open-Stop_Loss," TP2=",Price_Open+TP2);
Print("Stop_Loss=",Price_Open-Stop_Loss," TP3=",Price_Open+TP3);
ticket=OrderSend(Symbol(),OP_BUY,Lot,Ask,5,Price_Open-Stop_Loss,Price_Open+TP1,"МУТЕКИ(ДЕМАРК)",0,0,Blue);
if (ticket<0)Alert("ГУО_ОО: LastError = ", GetLastError());
ticket=OrderSend(Symbol(),OP_BUY,Lot,Ask,5,Price_Open-Stop_Loss,Price_Open+TP2,"МУТЕКИ(ДЕМАРК)",0,0,Blue);
if (ticket<0)Alert("ГУО_ОО: LastError = ", GetLastError());
ticket=OrderSend(Symbol(),OP_BUY,Lot,Ask,5,Price_Open-Stop_Loss,Price_Open+TP2,"МУТЕКИ(ДЕМАРК)",0,0,Blue);
if (ticket<0)Alert("ГУО_ОО: LastError = ", GetLastError());
}
// Если тип операции Селл:
if(Tip_operacii==1)
{
Print("Stop_Loss=",Price_Open+Stop_Loss," TP1=",Price_Open-TP1);
Print("Stop_Loss=",Price_Open+Stop_Loss," TP2=",Price_Open-TP2);
Print("Stop_Loss=",Price_Open+Stop_Loss," TP3=",Price_Open-TP3);
ticket=OrderSend(Symbol(),OP_BUY,Lot,Bid,5,Price_Open+Stop_Loss,Price_Open-TP1,"МУТЕКИ(ДЕМАРК)",0,0,Blue);
if (ticket<0)Alert("ГУО_ОО: LastError = ", GetLastError());
ticket=OrderSend(Symbol(),OP_BUY,Lot,Bid,5,Price_Open+Stop_Loss,Price_Open-TP2,"МУТЕКИ(ДЕМАРК)",0,0,Blue);
if (ticket<0)Alert("ГУО_ОО: LastError = ", GetLastError());
ticket=OrderSend(Symbol(),OP_BUY,Lot,Bid,5,Price_Open+Stop_Loss,Price_Open-TP2,"МУТЕКИ(ДЕМАРК)",0,0,Blue);
if (ticket<0)Alert("ГУО_ОО: LastError = ", GetLastError());
}
//----
return(0);
}
int delete()
{
//удаление созданных ранее объектов
ObjectDelete("Price_Open");
ObjectDelete("Up_Level");
ObjectDelete("Down_Level");
ObjectDelete("Vertical");
return(0);
}
//+------------------------------------------------------------------+
не нашел как крепить файл