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

 

Как улучшить эти результаты?!

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

Я пишу свой первый советник, который частично показывает хорошие результаты при обратном тестировании. Однако я не могу понять, как улучшить плохие стороны.

Во-первых, он имеет высокий процент выигрыша 86%, но только небольшой коэффициент прибыли, потому что убыточные сделки теряют гораздо больше, чем выигрывают победители!

У меня есть ММ, который не использует более 5% баланса счета на сделку, а на всю активную торговлю может быть использовано не более 11% баланса счета. Также я отслеживаю все стоп-лоссы.

Кажется, что я закрываю (OrderClose) выигрышные сделки слишком рано, а проигрышные сделки слишком поздно (или S/L).

Какова хорошая стратегия для этого? Я реализовал что-то вроде "не закрывать выигрышные сделки, даже если есть сигнал closebuy", но и это сработало не лучше!

Буду признателен за любые советы! Полный отчет можно найти здесь.

 

самый простой способ добавить тейк-профит в 3 пункта для каждой ручной сделки?

Мне нужно добавить тейк-профит в 3 пункта на форекс для каждой сделки, заключенной вручную. какой самый простой способ сделать это? у меня нет навыков программирования, и я не могу найти значение по умолчанию, которое можно установить в опциях metatrader 4.

 

Сброс стоп-приказа на покупку

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

Я написал этот код, и хотя он компилируется, он не работает. (Имеется в виду, что он не удаляет бай-стоп).

Я подумал, что может быть что-то не так с оператором "for", но я довольно новичок, поэтому не уверен.

Если кто-то может указать мне на проблему, я буду очень признателен.

спасибо

if( StopResetMinutes > 0)

{

total = OrdersTotal();

if(total>0)

for(i=0;i<total;i++)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY && OrderSymbol()==Symbol())

{

if((TimeCurrent() - OrderOpenTime()) /60 > StopResetMinutes ) OrderDelete(OrderTicket());

{

if(PrintComments) Print("Buy Stop Deleted.");

}

}

}

}

 
asgard2:
Привет,

Я написал этот код, и хотя он компилируется, он не работает. (Имеется в виду, что он не удаляет buystop).

Я подумал, что может быть что-то не так с оператором "for", но я довольно новичок, поэтому не уверен.

Если кто-то может указать мне на проблему, я буду очень признателен.

спасибо

if( StopResetMinutes > 0)

{

total = OrdersTotal();

if(total>0)

for(i=0;i<total;i++)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY && OrderSymbol()==Symbol())

{

if((TimeCurrent() - OrderOpenTime()) /60 > StopResetMinutes ) OrderDelete(OrderTicket());

{

if(PrintComments) Print("Buy Stop Deleted.");

}

}

}

}

[/code]

[CODE] if( StopResetMinutes > 0)

{

total = OrdersTotal();

if(total>0)

for(i=0;i<total;i++)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUYSTOP && OrderSymbol()==Symbol())

{

if((TimeCurrent() - OrderOpenTime()) /60 > StopResetMinutes )

{

OrderDelete(OrderTicket());

if(PrintComments) Print("Buy Stop Deleted.");

}

}

}

}
 
asgard2:
Привет,

Я написал этот код, и хотя он компилируется, он не работает. (То есть он не удаляет buystop).

Если вы хотите закрыть ордера BUY или SELL, вы должны использовать функцию OrderClose().

 
okfar:

if(OrderType()==OP_BUYSTOP && OrderSymbol()==Symbol())

{

if((TimeCurrent() - OrderOpenTime()) /60 > StopResetMinutes )

{

OrderDelete(OrderTicket());

if(PrintComments) Print("Buy Stop Deleted.");

}

}

}

}

Знаете, я работал над этим два дня, а вы решили проблему за несколько секунд...

Спасибо, спасибо, спасибо... Спасибо и спасибо...

Надеюсь, я звучу благодарно, потому что я в восторге!

ура

 

Уважаемые все,

У меня простой, на мой взгляд, вопрос.

У меня есть индикатор, который уведомляет меня всплывающим окном (alert), и я хотел добавить пользовательский звук (кроме стандартного alert.wav).

Я заметил, что когда происходит событие и появляется оповещение, неважно, какой "пользовательский" звук я запрограммировал в индикаторе, Metatrader 4 ВСЕГДА воспроизводит звук, который я назначил для оповещения (по умолчанию это alert.wav, см. меню MT4 Tools>Options>Events).

Возможно ли запрограммировать индикатор таким образом, чтобы я получал и визуальное оповещение, и назначенное мной звуковое оповещение...?

Заранее большое спасибо!

 

На самом деле, вы можете взять любой звук, назвать его alert.wav и заменить оригинальный файл.

 

Изменение пользовательского оповещения

Snowski:
Уважаемые все,

У меня простой, на мой взгляд, вопрос.

У меня есть индикатор, который уведомляет меня всплывающим окном (алертом), и я хотел добавить пользовательский звук (кроме стандартного alert.wav).

Я заметил, что когда происходит событие и появляется оповещение, неважно, какой "пользовательский" звук я запрограммировал в индикаторе, Metatrader 4 ВСЕГДА воспроизводит звук, который я назначил для оповещения (по умолчанию это alert.wav, см. меню MT4 Tools>Options>Events).

Возможно ли запрограммировать индикатор таким образом, чтобы я получал и визуальное оповещение, и назначенное мной звуковое оповещение...?

Заранее большое спасибо!

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

Try............

if (alert_ON == true) // для включения или выключения звукового оповещения

{

Alert ("Key in you custom PopUp Here",Symbol(),"-",TimeFrame);

PlaySound("custom.wav");

}

Я не так хорош в кодировании, но вы можете попробовать это, так как это должно работать. Пользовательский .wav, вы можете ввести свое собственное имя файла в ("??????.wav").

если вы хотите иметь возможность включать и выключать оповещение, вам также нужно добавить

extern bool alert_ON = True; // или false в начале кода вашего индикатора.

 

Функция истории

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

У меня есть следующий код. Я пытаюсь реализовать задержку между моими ордерами buystop в случае, если они были удалены. Я никогда раньше не использовал функцию истории.

Я не могу скомпилировать его из-за ошибки несбалансированных круглых скобок, может ли кто-нибудь сказать мне, почему они несбалансированные?

Кроме того, может ли кто-нибудь сказать мне, на правильном ли я пути или мне следует поискать другой способ сделать это?

if ((type == _OP_BUYSTOP) && (MayOpenDeferOrder && NextBuyStop_Order_Minutes !=0))//Time Delay for the next Buy Stop Order

int hstTotal=OrdersHistoryTotal();

for(i=0;i<hstTotal;i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)

Print("Access to history failed (",GetLastError(),")"); break;

{

if (OrderDelete() && (((TimeCurrent() - OrderCloseTime())/60) =< NextBuyStop_Order_Minutes) MayOpenDeferOrder = false;

}

}

Спасибо

Причина обращения: