Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Помощь в объяснении кода временного фильтра Tradestation
Здравствуйте,
Я смотрю на код временного фильтра Tradestation, и поскольку я никогда не использовал Tradestation раньше, я не очень уверен в нем. Кто-нибудь, кто имеет опыт работы с ним, может прояснить это?
входы:
time_offset(0), {EST Time}
begin_time(800),
end_time(1600);
если время >=начало_времени + смещение_времени и время <=конец_времени + смещение_времени, то начать
Говорит ли этот код временного фильтра о том, что торговля будет начата с 8.00 утра до 4.00 вечера по восточному времени?
Спасибо за помощь.
Число смещения -100 должно использоваться, когда данные находятся, скажем, в Центральном стенде. Вы должны это выяснить.
Что касается логики, она говорит, что если это между 800 и 1600 часами, то нужно начать что-то делать... например, следить за определенными настройками.
Надеюсь, это поможет.
Maji
Привет, Маджи,
Спасибо за подтверждение и комментарий по поводу смещения. Теперь я знаю, как использовать смещение.
вопрос по масштабированию лотов ... нужна помощь с кодом...
Я знаю, что сам несу ответственность за свои риски при использовании любой стратегии. Я не хочу никого пугать. Я ищу помощи с кодом, который я мог бы поместить в советник, который бы регулировал размер лота ордеров в соответствии с процентом от текущей свободной маржи на счете и позволял бы мне выбирать, с каким процентом от этой маржи входить в следующую позицию.
Эй-
Установите внешнее двойное значение, например:
extern double RiskFraction=0.1;
Затем в "start(" добавьте:
double Lots=(MathRound(AccountFreeMargin()*RiskFraction/10.0)/100);
....
OrderSend(Symbol(),OP_BUY,Lots,Ask,0,0,0, "EA Name",MagicNum,0,Green);
.1 означает риск 10% от вашего счета.
Удачи ,
Gavner
Вопрос
Привет-
Установите внешнее значение double, например:
extern double RiskFraction=0.1;
Затем в "start(" добавьте:
double Lots=(MathRound(AccountFreeMargin()*RiskFraction/10.0)/100);
....
OrderSend(Symbol(),OP_BUY,Lots,Ask,0,0,0, "EA Name",MagicNum,0,Green);
.1 означает риск 10% от вашего счета.
Удачи ,
GavnerЭто то, что я искал для своего советника.
Также, есть ли часть кода, которая будет ограничивать количество сделок, которые будут открыты на основе доступной маржи.
Пример: Советник будет открывать сделки до тех пор, пока не будет использовано 50% доступного маржинального баланса?
Спасибо!
Spider~
Нужны кодеры для взлома кода
это выглядит примерно так : if(mov(zig(4,c),4,e) - mov(zig(9,c),7,e)
Здравствуйте... кто-нибудь заметил эту тему и хочет мне помочь?
Нужен код стоп-лосса, срабатывающего на счете. нужны программисты
Я хотел бы использовать стоп-лосс, который срабатывает, когда капитал счета падает ниже баланса счета на определенный процент. С одной стратегией должно работать что-то простое вроде ZERO процентов , но я хотел бы иметь возможность использовать это и в других стратегиях, поэтому я хотел бы иметь возможность указать допустимый процент потерь для каждой проигрышной позиции таким образом. При срабатывании я бы хотел, чтобы он закрывал все открытые ордера.
Не мог бы кто-нибудь сделать это для меня. У меня есть стратегия, которой это было бы очень полезно. Проблема в том, что традиционный стоп-лосс все портит. Если я смогу остановить проигравшие позиции так, чтобы они не отнимали капитал у победителей, то стратегия должна действительно заработать.
if(AccountEquity()<AccountBalance()) {
{
int ttotal = OrdersTotal();
for(int i=ttotal-1;i>=0;i--)
{
OrderSelect(i, SELECT_BY_POS);
int type = OrderType();
bool result = false;
switch(type)
{
//Close opened long positions
case OP_BUY : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red );
break;
//Close opened short positions
case OP_SELL : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red );
}
if(result == false)
{
Alert("Order " , OrderTicket() , " failed to close. Error:" , GetLastError() );
Sleep(3000);
}
}
return(0);
}
}
}Хорошо, вот что я попробовал ... это в основном скопировано с другого кода, который кто-то здесь сделал ... но он просто закрывает все так быстро, как они открываются и не обращает никакого внимания на условие 'if' перед выполнением закрытия....oy я не хорош в этом.... Я, очевидно, не имею части, которая делает закрытие ордеров достаточно прикреплена к условной линии, которая сравнивает эквити счета с балансом счета. Не мог бы кто-нибудь помочь мне с этим?