Прошу прощения за сбитые отступы, так скопировалось
(пытался отредактировать сообщение, там все с отступами)
(пытался отредактировать сообщение, там все с отступами)
для этого есть специальный тег pre в квадратных скобках
у Вас неправильно построен эксперт. после каждой торговой операции обязательно надо выполнять инструкцию exit
Пожалуйста ответь на вопрос в теме "MT3: Expert не смог закрыть сделку"
для этого есть специальный тег pre в квадратных скобках
у Вас неправильно построен эксперт. после каждой торговой операции обязательно надо выполнять инструкцию exit
Пожалуйста ответь на вопрос в теме "MT3: Expert не смог закрыть сделку"
Насчет тега, честно только сейчас заметил, когда прочитал.
А exit не помогает, это на тестировании вылазит, там задержек то нет. Здесь проблема именно в MQLII, сейчас возился, упростил эксперт до минимума :)
/*[[
Name := test
Author := Copyright © 2005, Andrew Mochalov
Link := www.avm.hnet
Lots := 1.00
Stop Loss := 0
Take Profit := 0
Trailing Stop := 0
]]*/
var: i(0), j(0);
if (i==0) then for j=0 to 10 {i=1;}
if (i<>0) then print("!!!!!");
По идее, во время первого тика i присвается 1 и дальше на каждый тик в log должны печататься восклицательные знаки. Однако строка print выполняется только один раз, хотя тиков там очень много.
Версия MT - 3.85 build 6414
попробуйте эти две строчки у себя кто-нибудь. Пройдет или нет?
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
/*[[
Name := maexpert
Author := Copyright © 2005, Andrew Mochalov
Link := www.avm.hnet
Lots := 1.00
Stop Loss := 50
Take Profit := 100
Trailing Stop := 0
]]*/
define: fast(7), slow(21);
var: count(0), emaf1 (0), emaf2(0), emas1(0), emas2(0);
emaf1=iMa(fast,MODE_EMA,1);
emaf2=iMa(fast,MODE_EMA,2);
emas1=iMa(slow,MODE_EMA,1);
emas2=iMa(slow,MODE_EMA,2);
if (emaf1 > emas1) and (emaf2 < emas2) then {
if TotalTrades > 0 then for count=1 to TotalTrades {
if OrderValue(count,VAL_TYPE) == OP_SELL then СloseOrder(ord(count,VAL_TICKET),ord(count,VAL_LOTS),ASK,2,GREEN);
}
// print("покупка");
if TotalTrades = 0 then SetOrder(OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,Green);
}
if (emaf1 < emas1) and (emaf2 > emas2) then {
if TotalTrades > 0 then for count=1 to TotalTrades {
if OrderValue(count,VAL_TYPE) == OP_BUY then CloseOrder(ord(count,VAL_TICKET),ord(count,VAL_LOTS),BID,2,GREEN);
}
// print("продажа");
if TotalTrades = 0 then SetOrder(OP_SELL,Lots,Bid,3,Bid+StopLoss*Point,Bid-TakeProfit*Point,Green);
}
Прошу прощения за сбитые отступы, так скопировалось
(пытался отредактировать сообщение, там все с отступами)