Как кодировать? - страница 74

 

Вы имеете в виду:

if ( ( CloseSell1_1 CloseSell2_2 ) || ( CloseSell3_1 > CloseSell3_2 ) ) Order = SIGNAL_CLOSESELL;

[/PHP]or do you mean:

[PHP]if ( ( CloseSell1_1 CloseSell2_2 || CloseSell3_1 > CloseSell3_2 ) ) Order = SIGNAL_CLOSESELL;

 

Спасибо.

Теперь, когда я смотрю на это, это было очевидно. Это помогло. Первоначальный бэктест не очень хорош. Пора подправить.

 
Big Be:
Мне нужно знать, как изменить стоп для ПОЛОВИНЫ моего открытого ордера. Насколько я понимаю, это означает открытие двух ордеров, например, .2 лота и .2 лота.

Мой советник определяет количество лотов на основе расчета Money Management.

После изменения стопа для одного ордера (на основании достижения ценового уровня) я бы позволил моему коду выхода закрыть оба ордера, если только их (теперь уже разные) стопы не будут достигнуты.

Другой ордер сохраняет свой первоначальный стоп или, возможно, перемещает его до уровня Break Even.

Если начальное количество лотов (из функции MM) нечетное, вместо округления вниз для нечетного количества лотов или десятых лотов, я бы хотел разделить их неравномерно между двумя ордерами.

Я полагаю, что это включает в себя магические числа и пару строк кода здесь и там. Может быть, есть советник со всем этим, который я мог бы скопировать.

Спасибо за любую помощь.

Большой Бе

Привет; вы спрашивали меня об этом в другом месте, но там было несколько ответов, и я не знаю, какие части ваших проблем могут остаться. Потребуется раунд, где вы спросите снова....

 

Привет, Ральф,

ralph.ronnquist:
Привет; вы прямо спросили меня об этом в другом месте, но там было несколько ответов, и я не знаю, какие части ваших проблем могут остаться. Потребуется раунд, где вы спросите снова.....

Ну, ни один из ответов на самом деле не отвечал ни на один из моих вопросов - некоторые были о моих ответах на вопросы других.

Так что все части остаются. (См. предыдущее сообщение для цитирования вопроса, который я разместил в этой теме).

Спасибо,

Большой Бе

 

Проблема с установкой лимитного ордера

Привет, ребята и девчонки,

Я пытаюсь настроить код в своем советнике для входа в сделку на определенном ценовом уровне (лимитный ордер). Вот код для лимитного ордера:

ticket=OrderSend(Symbol(),OP_BUYLIMIT,lots,Ask+10*Point,3,BuyStopLoss,0, "xx Buy",16384,0,Red);

lots и BuyStopLoss - это заранее рассчитанные значения, и они работают с обычной рыночной функцией "OP_BUY", когда я переключаю ее на нее. Ask+10*Point - это просто произвольное значение, которое я придумал выше текущей цены, на самом деле я обычно использую BuyEntry, которое также предопределено.

При попытке запустить код в тестере стратегий я получаю ошибку:

"2008.02.24 16:00:08 2004.06.17 15:15 xxEA EURUSD,M15: OrderSend error 130" (это ошибка, связанная со стоплоссом).

Есть идеи, что вызывает эту ошибку? Я думаю, что должна быть проблема с тем, как я устанавливаю лимитный ордер, или он не может выполнять лимитные ордера в тестере стратегий (?), потому что он, кажется, работает нормально с рыночным ордером. Спасибо за любую помощь.

 

Конструктор советников?

Lonestar:
Я относительно новичок в Metatrader, но не в торговле, и я создал несколько советников с помощью Expert Adviser Builder. Большинство из них работают нормально, но у меня возникают проблемы, когда я использую несколько выходов. Закрытие (покупка) логики и закрытие (продажа) логики с функцией OR. Множественные выходы с AND работают нормально, но он не распознает ни один из созданных мной с OR. Ниже приведен код выхода.

//+------------------------------------------------------------------+

//| Сигнал Начало(Выход Продажа) |

//+------------------------------------------------------------------+

if (CloseSell1_1 CloseSell2_2 || CloseSell3_1 > CloseSell3_2) Order = SIGNAL_CLOSESELL;

Жирная часть - это сигнал, который он игнорирует. Есть идеи. Это единственное, что удерживает меня от правильного бэктестинга. Если кто-то может помочь, и он нормально тестируется, вы можете забрать его. Если просто вручную отфильтровать сделки, которые должны быть закрыты, это выглядит многообещающе.

Спасибо.

Что такое Построитель советников?

 
nondisclosure007:
Что такое Expert Advisor Builder?

Что-то вроде Gordago или вот этого

 

Варьируемый размер участка.

Здравствуйте,

Могу ли я получить код для изменения размера лота для советника?

Например, для первого ордера на продажу 0.2, для второго ордера на продажу 0.1.

С уважением,

SIDDESH

 
Linuxser:
Что-то вроде Gordago или вот этого

Спасибо. Мне нравится Gordago для тестирования стратегий (без необходимости писать код). Мне нужно поработать с шаблонами, которые он использует для моего советника. Я обнаружил, что мне приходится вносить некоторые правки в то, что он создает, чтобы соответствовать моему собственному стилю кодирования. Но в целом, я впечатлен.

Я думал, что Gordago - это коммерческий продукт? Я нигде не вижу, сколько он стоит.

 

ERR_COMMON_ERROR #2 при открытии сделки

Привет всем,

После замечательной помощи на днях с проблемами NewBar, которые у меня были, я узнал очень много нового и значительно продвинулся в моем учебном советнике, который я программирую. (В основном в качестве учебного упражнения и очень базовой системы, которую я хочу протестировать (несомненно, не будет прибыльной, но это хорошее учебное упражнение!).

Я написал скрипт, каждый новый бар, он закрывает все предыдущие сделки по текущей паре, затем берет 20-периодное значение ATR и вводит стоп покупки и стоп продажи для входа в рынок, когда он движется на половину пути к значению ATR от открытия рынка. Затем устанавливается тейк-профит на значении ATR (я считаю, что если пара прошла половину пути, то, вероятно, среднее движение за день приведет к достижению тейк-профита. Возможно, я совершенно не прав, но все равно хочу запрограммировать его, чтобы попробовать значения - на демо-счете, а не в тестере стратегий).

Я запрограммировал все это и в конце концов придумал, как удалить лишние цифры после запятой с помощью NormalizeDouble, но теперь, когда советник пытается открыть стоп на покупку в начале бара, у меня возникает ERR_COMMON_ERROR или Ошибка #2.

Это РЕАЛЬНО бесполезно. Я проверил значения, которые он определяет для Open, Take Profit и Stop Loss, и все они кажутся разумными, и я не могу понять, что еще это может быть. Это стало моим разочарованием на весь вечер, так как от GetLastError не поступает больше никакой информации, чем эта! Пожалуйста, помогите.

ATR_Value = iATR(NULL,0,ATR_Period,0); //Get current ATR Value from chart

if (ATR_Value < (ATR_Minimum*Point)) //Check current ATR_Value to ensure it is no less than the ATR_Minimum set

{

Print("Too little range for trading. ATR_Minimum ",(ATR_Minimum*Point)," ATR_Value ",ATR_Value);

return(0);

}

double buyopen,nbuyopen,buysl,nbuysl,buytp,nbuytp,sellopen,nsellopen,sellsl,nsellsl,selltp,nselltp;

buyopen=((iOpen(NULL,0,0))+(ATR_Value*Open_Multiplier)+Open_Offset);

nbuyopen=NormalizeDouble(buyopen,Digits);

buysl=((iOpen(NULL,0,0))+(ATR_Value*SL_Multiplier)+SL_Offset);

nbuysl=NormalizeDouble(buysl,Digits);

buytp=((iOpen(NULL,0,0))+(ATR_Value*TP_Multiplier)+TP_Offset);

nbuytp=NormalizeDouble(buytp,Digits);

sellopen=((iOpen(NULL,0,0))-(ATR_Value*Open_Multiplier)-Open_Offset);

nsellopen=NormalizeDouble(sellopen,Digits);

sellsl=((iOpen(NULL,0,0))-(ATR_Value*SL_Multiplier)-SL_Offset);

nsellsl=NormalizeDouble(sellsl,Digits);

selltp=((iOpen(NULL,0,0))-(ATR_Value*TP_Multiplier)-TP_Offset);

nselltp=NormalizeDouble(sellsl,Digits);

Print("Open:",nbuyopen," TP:",nbuytp," SL:",nbuysl);

int ticketbuy;

ticketbuy=OrderSend(Symbol(),OP_BUYSTOP,Lots,nbuyopen,Max_Slippage,nbuysl,nbuytp,"Buy Order",12345,(Bar_Period-Bar_Offset),Green);

if(ticketbuy<0)

{

Print("Buy Order failed with error #",GetLastError());

return(0);

}

int ticketsell;

ticketsell=OrderSend(Symbol(),OP_SELLSTOP,Lots,nsellopen,Max_Slippage,nsellsl,nselltp,"Buy Order",54321,(Bar_Period-Bar_Offset),Red);

if(ticketsell<0)

{

Print("Buy Order failed with error #",GetLastError());

return(0);

}

Большое спасибо за любую помощь, я также приложил mt4, если кто-то не против взглянуть. Он также содержит части скриптов других людей, которые, извините, я не указал, но все они были размещены на этом сайте. (Разумеется, я буду указывать авторство, если когда-нибудь выпущу EA, я размещаю это только для того, чтобы попытаться решить эту проблему, так как это было моим вечерним разочарованием).

Говард

Файлы:
atr.mq4  6 kb
Причина обращения: