Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ваша система звучит немного безумно......
extern double Lots=0.1;
extern int TP=50;
extern int SL=50;
extern int timeframe=1;
extern bool close=false;
extern int Slippage=2;
extern int Magic=46151;
int init()
{
return(0);
}
int deinit()
{
return(0);
}
datetime LastTradeTime = 0;
int start()
{
int time=60*timeframe;
if(LocalTime()-LastTradeTime > time) {
if(close==true) {
if(OrdersTotal()!=0) {
for(int i = 0;i < OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderType()==OP_SELL && OrderMagicNumber()==Magic) { OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), Slippage, Green ); }
if(OrderType()==OP_BUY && OrderMagicNumber()==Magic) { OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), Slippage, Red ); }
} } }
OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, Ask - SL * Point, Ask + TP * Point, NULL, Magic, 0, Green);
OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, Bid + SL * Point, Bid - TP * Point, NULL, Magic, 0, Red);
LastTradeTime = LocalTime(); }
return(0);
}Если "close" - true, то она закроет открытые ордера в конце таймфрейма (в данном случае 1 минута). SL/TP=100 означает 10 пипсов у 5-значного брокера.
Кстати, я не уверен, что он откроет оба ордера немедленно.
Возможно ли закрыть и открыть (или открыть 2 позиции) в одно и то же время?
Конечно, это прекрасно работает в бэктестах, но я не знаю, работает ли это на демо/живом счете.
Я НИКОГДА не мог заставить это работать ни с одним брокером...
Я добавил задержки и код подтверждения, чтобы проверить, были ли ордера закрыты и открыты, если нет, попробуйте снова.
даже после этого, все еще не работает правильно последовательно
Похоже, что это проблема для многих стратегий. Есть ли кто-нибудь, кто нашел решение этой проблемы?
проблема с трейлинг-стопом
У меня есть йеновые пары, которые, когда я пытаюсь использовать трейлинг-стоп, перемещают мою цену в "ноль" после выхода в прибыль. Может ли кто-нибудь сказать мне, почему это происходит и как это исправить? Трейл-ордер отлично работает на пятизначных валютах.
void TrailOrder(int type)
{
if(TrailingStop>0){
if(OrderMagicNumber() == MagicNumber)
{
if(type==OP_BUY)
{
if(Bid-OrderOpenPrice()>Point*TrailingStop)
{
if(OrderStopLoss()<Bid-Point*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(Point*TrailingStop),OrderTakeProfit(),0,Green);
}
}
}
if(type==OP_SELL)
{
if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
{
if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(Point*TrailingStop),OrderTakeProfit(),0,Red);
}
}
}
}
}
}
У меня есть йеновые пары, которые, когда я пытаюсь использовать трейлинг-стоп, перемещают мою цену в "ноль" после выхода в прибыль. Может ли кто-нибудь сказать мне, почему это происходит и как это исправить? Трейл-ордер отлично работает на 5-значных валютах.
Я думаю (это только мое мнение), что это потому, что у вас есть функция, и эта функция ничего не знает о OrderOpenPrice(), OrderStopLoss() и т.д. Вам лучше поместить этот код внутрь цикла.
У меня есть иеновые пары, которые, когда я пытаюсь использовать трейлинг-стоп, перемещают мою цену в "ноль" после выхода в прибыль. Может ли кто-нибудь сказать мне, почему это происходит и как это исправить? Трейл-ордер отлично работает на пятизначных валютах.
Возможно, усердное использование NormalizeDouble(...) изменит ситуацию?
как закодировать пересечение двух индикаторов с разными шкалами
как закодировать пересечение двух индикаторов с разными шкалами?
мне нужна помощь
Я попробую все. Это странно, потому что coder guru закодировал ea, а я модифицировал. Я просмотрел тонны ea и не могу ничего найти.
подскажите, как написать код после
void TrailOrder(int type)
вызывающей функцию?
Может быть, убрать функцию полностью и использовать внешнее e в трейлинге ea...argh>!
есть предложения, как написать код после
void TrailOrder(int type)
вызывающая функция?
Может быть, убрать функцию полностью и использовать внешнее e в конце ea...argh>!Если хотите, я могу исправить ваш советник. Пришлите мне его в PM.