Нужна небольшая помощь!

 

Нужна небольшая помощь!

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);

Кто может помочь?

Этот код строит объект в определенное время

Нужно это время сравнить с временем открытия последнего ордера

Вообщем как в явной форме написать время создания объекта

панса

 
if(ObjectGet("trigh",OBJPROP_TIME1)!=Time[0])
{
   ObjectSet("trigh", OBJPROP_TIME1, Time[0])
}
 
sanyooooook:


Ценю оперативность

Однако что внести в формулу

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;
}
 
vip.avos:


Если интересно:


Печально, даже не знаю с чего начать ......
 
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;
Ну, подставьте вместо Аск любую цену и сразу увидите какую чушь вы написали.
 
Roger:
Ну, подставьте вместо Аск любую цену и сразу увидите какую чушь вы написали.

мы все когда то писали чушь .....
 
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. Я пропустил стоп лосс, сами посчитайте.

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