if(ObjectGet("trigh",OBJPROP_TIME1)!=Time[0]) { ObjectSet("trigh", OBJPROP_TIME1, Time[0]) }
Ценю оперативность
Однако что внести в формулу
If(--------------------------- < LastOrderOpenTime()) return(flag==true);
Поиск объекта
Кто поможет осуществить поиск объекта по иmени (Name)
В списке обьектов через каждые 5-10 секунд
Получит заказ на ехперта
панса
for(int i=ObjectsTotal()-1; i>=0; i--) if(ObjectName(i)=="Искомое имя") дальнейший код
Я так понял Вы учитесь только
extern datetime TimeSet = D'2012.07.20 00:00'; //Время выставления ордеров, если текущее время больше установленного, то выставляются сразу extern bool BuyStop = true; //открыть BuyStop ордера extern bool BuyLimit = false; //открыть BuyLimit ордера extern bool SellStop = true; //открыть SellStop ордера extern bool SellLimit = false; //открыть SellLimit ордера extern string __ = ""; //цена выставления первого SellStop ордера, если 0 то первый SellStop будет выставлен по цене Bid-FirstStop extern double FirstBuyLimit = 0; //цена выставления первого BuyLimit ордера, если 0 то первый BuyLimit будет выставлен по цене Bid-FirstStop extern double FirstSellLimit = 0; //цена выставления первого SellLimit ордера, если 0 то первый SellLimit будет выставлен по цене Ask+FirstStop extern int FirstStop = 0; //расстояние (в пунктах) от текущей цены до первого Stop ордера в случае First..Stop=0 extern int FirstLimit = 0; //расстояние (в пунктах) от текущей цены до первого Limit ордера в случае First..Limit=0 extern int StepStop = 0; //расстояние (в пунктах) между Stop ордерами extern double K_StepStop = 1; //коэффициент расширения сетки extern int StepLimit = 0; //расстояние (в пунктах) между Limit ордерами extern double K_StepLimit = 1; //коэффициент расширения сетки extern string _ = ""; extern int Orders = 1; //кол-во ордеров сетки extern double LotStop = 0.01; //объем первого Stop ордера extern double K_LotStop = 1; //умножение лота Stop ордеров extern double Plus_LotStop = 0; //добавление лота Stop ордеров extern double LotLimit = 0.1; //объем первого Limit ордера extern double K_LotLimit = 2; //умножение лота Limit ордеров extern double Plus_LotLimit = 0; //добавление лота Limit ордеров //уровень выставления TP, если 0, то TP не выставляется extern int Expiration = 1440; //Срок истечения отложенного ордера в минутах, если 0, то срок не ограничен (1440 - сутки) =========== А на 3 часа????? extern int attempts = 10; //кол-во попыток открытия ордера extern int Magic = 0; //уникальный номер ордера void start() { double prOpen = iOpen (0,0,1); // ????????????????? int MN = NormalizeDouble(Ask*10,0); // ???????????????? int SL = prOpen+2*MN; // ?????????????? int TP = MN*70; // ????????????????? double FirstBuyStop = Ask+2*MN; //цена выставления первого BuyStop ордера, если 0 то первый BuyStop будет выставлен по цене Ask+FirstStop double FirstSellStop = Ask-2*MN; int stoploss = SL; //уровень выставления SL, если 0, то SL не выставляется int takeprofit = TP; }
Если интересно:
Печально, даже не знаю с чего начать ......
double prOpen = iOpen (0,0,1); // ????????????????? int MN = NormalizeDouble(Ask*10,0); // ???????????????? int SL = prOpen+2*MN; // ?????????????? int TP = MN*70; // ????????????????? double FirstBuyStop = Ask+2*MN; //цена выставления первого BuyStop ордера, если 0 то первый BuyStop будет выставлен по цене Ask+FirstStop double FirstSellStop = Ask-2*MN;Ну, подставьте вместо Аск любую цену и сразу увидите какую чушь вы написали.
Ну, подставьте вместо Аск любую цену и сразу увидите какую чушь вы написали.
мы все когда то писали чушь .....
if (Digits == 2) { double MN = NormalizeDouble(Ask/7,0); double MNum = MN/100; takeprofit = NormalizeDouble(Ask,0); } else { MN = NormalizeDouble(Ask*7,0); MNum = MN/10000; takeprofit = NormalizeDouble(Ask*50,0); } double FirstBuyStop = Ask+(2*MNum); double FirstSellStop = Bid-(2*MNum); stoploss = MN*2;
Давайте шаг за шагом. В первом случае возьмем, например EURJPY - Ask=143.43/Bid=140.43, тогда
MN=20, Mnum=0.2, takeprofit=143.0, priceBS=FirstBuyStop=147.63, First SellStop=136.23
Начинаем выставлять ордера
for buystop - TP=147.63+1.43=149.06, SL=0//вроде ничего
for sellstop - TP=136.23-1.43=134.8, SL=0// тоже годится
Теперь для EURUSD - Ask =1.3691/Bid=1.3689 тогда
MN=9, MNum=0.0009, takeprofit=65, priceBS=FirstBuyStop=1.3709, priceSS=First SellStop=1.3671
for buystop - TP=1.3839, SL=0
for sellstop - TP=1.3541, Sl=0
Если это то, что Вы ожидали, поздравляю, цель достигнута.
P.S. Я пропустил стоп лосс, сами посчитайте.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Нужна небольшая помощь!
ObjectCreate("trigh", OBJ_ARROW, 0, Time[0], High[0]);
ObjectSet("trigh", OBJPROP_STYLE, STYLE_DOT);
ObjectSet("trigh", OBJPROP_ARROWCODE, SYMBOL_ARROWDOWN);
ObjectSet("trigh", OBJPROP_COLOR, Red);
Кто может помочь?
Этот код строит объект в определенное время
Нужно это время сравнить с временем открытия последнего ордера
Вообщем как в явной форме написать время создания объекта
панса