Спасибо большое! И ещё вопросик: как к нему прикрутить условие, при котором отложенники будут удаляться по истечении какого-то времени?
Спасибо большое! И ещё вопросик: как к нему прикрутить условие, при котором отложенники будут удаляться по истечении какого-то времени?
Спасибо большое! И ещё вопросик: как к нему прикрутить условие, при котором отложенники будут удаляться по истечении какого-то времени?
ilushkin >>:
Спасибо большое! И ещё вопросик: как к нему прикрутить условие, при котором отложенники будут удаляться по истечении какого-то времени?
Спасибо большое! И ещё вопросик: как к нему прикрутить условие, при котором отложенники будут удаляться по истечении какого-то времени?
int OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE)
Где expiration - Срок истечения отложенного ордера. Т.е. ордер будет удален когда expiration>=текущего времени. Тип expiration - datetime.
чтоб в коде было меньше ошибок пользуйся этим! (Полезные функции от KimIV 'Полезные функции от KimIV')
skdon, мне надо, чтобы ордер удалялся не в определенный час, а через n минут после открытия
Вычислить время экспирации можно например так:
extern int ExpirationMinutes = 25; // Ордер будет удалён через 25 минут datetime TimeExpir = TimeCurrent() + ExpirationMinutes * 60: OrderSend(Symbol(), 0, 0.1, 1.5555, 5, 0, 0, NULL, 0, TimeExpir, CLR_NONE);
ilushkin >>:
skdon, мне надо, чтобы ордер удалялся не в определенный час, а через n минут после открытия
skdon, мне надо, чтобы ордер удалялся не в определенный час, а через n минут после открытия
extern int DeleteAfter_Minutes=6; CloseTime=TimeToStr(StrToTime(TimeCurrent( ))+DeleteAfter_Minutes*60); OrderSend(Symbol(),OP_BUY,1,Ask,3,Bid-25*Point,Ask+25*Point,"My order #"+counter,16384,CloseTime,Green);
Спасибо за помощь! Но он делает какой-то левый тест. Открываются только лонги и в огромных количествах. Может, я неправильно описал пересечение стохастиком сигнальных линий?
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Всем привет! Написал советника, видимо криво. Потому что тест делать не хочет, выдает ошибки, хотя и был нормально скомпиллирован. Вот его код. Помогите кто чем можт, пожалуйста!
// Численные значения для M5
extern double TakeProfit = 200; // TP для открываемого ордера
extern double StopLoss = 300; // SL для открываемого ордера
extern double PeriodK = 5; //
extern double PeriodD = 3; //
extern double Zamedlenie = 3;
extern double LowSignalLine = 20;
extern double UpSignalLine = 80;
extern double LotsOptimized = 0.5; // Оптимальный размер лота
extern double Level = 200; // Уровень отложенного ордера
double Stoch1;
double Stoch2;
int res;
int prevtime;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
//---- рассчитываем индикатор Стохастик
Stoch1 = iStochastic(Symbol(),0,PeriodK, PeriodD, Zamedlenie,MODE_SMA,1,MODE_MAIN,1);
Stoch2 = iStochastic(Symbol(),0,PeriodK, PeriodD, Zamedlenie,MODE_SMA,1,MODE_MAIN,2);
//---- Условие продажи
if(Stoch2>=UpSignalLine && Stoch1<UpSignalLine)
res = OrderSend( Symbol(), OP_SELLSTOP, LotsOptimized, Bid-Level*Point, 0, Bid-Level*Point+StopLoss*Point, Bid-Level*Point+TakeProfit*Point, "", 0, 0, CLR_NONE);
return;
//---- Условие покупки
if(Stoch2<=LowSignalLine && Stoch1>LowSignalLine)
res = OrderSend( Symbol(), OP_BUYSTOP, LotsOptimized, Ask+Level*Point, 0, Ask+Level*Point-StopLoss*Point, Ask+Level*Point+TakeProfit*Point, "", 0, 0, CLR_NONE);
return;
}
return;