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

 

Высота предыдущего бара

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

Подскажите, пожалуйста, код для предыдущего бара.

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

С уважением,

SIDDESH

 

Поправьте мой код (основные EMA, STOC и т.д.)

Привет. Я новичок здесь и новичок в кодировании mql4. Я построил несколько кодов, основанных на определенных условиях. Надеюсь, вы, ребята, поможете мне исправить ошибки.

хорошо... давайте начнем

1) EMA CROSS

Покупать, если:

- EMA 5 > EMA 18

- обе линии направлены вверх

- разница между текущей и предыдущей ценой для EMA5 >= 10 пунктов

в настоящее время я использую это:

double EMA5 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, 0);

double EMA5_prev = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, 1);

double EMA18 = iMA(NULL, 0, 18, 0, MODE_EMA, PRICE_CLOSE, 0);

double EMA18_prev = iMA(NULL, 0, 18, 0, MODE_EMA, PRICE_CLOSE, 1);

if (EMA5 > EMA18) {

if ( EMA5 - EMA5_prev >= 10 && EMA18 > EMA_prev) {

Order = BUY;

}

}

[/CODE]

2) RSI

double RSI = iRSI(NULL, 0, 18, PRICE_CLOSE, Current + 0);

double RSI_prev = iRSI(NULL, 0, 18, PRICE_CLOSE, Current + 1);

if (RSI > 50 && RSI > RSI_prev) {

Order = BUY;

}

[/CODE]

3) STOCH

Buy when the Oscillator (either %K or %D) falls below a specific level (e.g., 20) and then rises above that level. Sell when the Oscillator rises above a specific level (e.g., 80) and then falls below that level

[code]

double STOCH_K = iStochastic(NULL, 0, 5, 3, 3, MODE_SMA, 0, MODE_MAIN, 0);

double STOCH_D = iStochastic(NULL, 0, 5, 3, 3, MODE_SMA, 0, MODE_SIGNAL, 0);

if (STOCH_K < 20 || STOCH_D < 20) {

Order = BUY;

}

* i think i've skipped the red one.. dont know how to do that part..

Buy when the %K line rises above the %D line and sell when the %K line falls below the %D line

[code]

double STOCH_K = iStochastic(NULL, 0, 5, 3, 3, MODE_SMA, 0, MODE_MAIN, 0);

double STOCH_D = iStochastic(NULL, 0, 5, 3, 3, MODE_SMA, 0, MODE_SIGNAL, 0);

if (STOCH_K > STOCH_D) {

Order BUY;

} else

if {STOCH_K < STOCH_D) {

Order SELL;

}

4) В кодировке Stoc, MODE_MAIN указывает для чего? MODE_SIGNAL указывает на что?

5) как установить таймер автоматического закрытия и автоматического включения для советника?

Например: установить открытие в 8 утра и закрытие в 5 вечера.

6) как отключить советника на другом графике при открытии поста?

например, использовать советника на 2 парах (GU и EJ), когда открывается пост на GU, отключить советника на EJ...

Извините, если вопрос довольно простой. Надеюсь, вы сможете меня научить. Спасибо.

 

Сложный стоплосс - вы можете помочь с этим?

Я создал советника для торговли по тренду. Когда прибыль достигает определенного уровня, я хочу переместить стоплосс для ЧАСТИ открытых лотов на этот уровень прибыли. Остальные лоты я бы оставил в покое (или передвинул стоплосс для остальных до уровня безубыточности).

Я не использую тейк-профит.

Как мне это закодировать?

Спасибо,

Big Be

 
Big Be:
... Когда прибыль достигнет определенного уровня, я хочу переместить стоплосс для ЧАСТИ открытых лотов на этот уровень прибыли. ..

Как мне это закодировать?

Спасибо,

Big Be

Вы не можете этого сделать, если у вас несколько позиций: по позиции может быть только один SP/TP. Но вы можете закрыть часть позиции: просто поставьте количество лотов, которое вы хотите закрыть в функции OrderClose(...).

Что вы также можете сделать (это зависит от вашего брокера), так это разместить отложенный стоп (хедж) для нужной вам части: затем позже вы должны выполнить команду или функцию "CloseBy".

 

Вопрос по #импорту

привет всем

Мне нужно вызвать эту функцию API в MT4

int GetMouseMovePoints(

UINT cbSize // размер структуры MOUSEMOVEPOINT

LPMOUSEMOVEPOINT lppt, // указатель на текущую точку перемещения мыши

LPMOUSEMOVEPOINT lpptBuf, // буфер для хранения точек

int nBufPoints, // сколько точек может хранить буфер

DWORD resolution // разрешение точек

);

пожалуйста, скажите мне #import clausule

спасибо

 
DooMGuarD:
привет всем

необходимо вызвать эту функцию API в MT4

int GetMouseMovePoints(

UINT cbSize // размер структуры MOUSEMOVEPOINT

LPMOUSEMOVEPOINT lppt, // указатель на текущую точку перемещения мыши

LPMOUSEMOVEPOINT lpptBuf, // буфер для хранения точек

int nBufPoints, // сколько точек может хранить буфер

DWORD resolution // разрешение точек

);

пожалуйста, скажите мне #import clausule

спасибо

Переместил ваш вопрос в эту тему.

 

Одна сделка на бар?

Я знаю, что это уже обсуждалось, но может ли кто-нибудь показать мне код, позволяющий только 1 сделку на бар?

Спасибо.

 

Мишель,

Спасибо.

Я боялся этого.

Теперь мне придется выучить "забавы с магическими числами".

Большой Бе

 

Вопрос!!!

Как это закодировать?

Если предыдущие 6 сделок были убыточными, я пробовал это, и это не работает!!!

int MTL;

extern MaxTradeLoss=6;

int start()

{

for(int b=0;b<MaxTradeLoss;b++)

{

if(OrderSelect(b,SELECT_BY_POS,MODE_HISTORY)==true)

{

if(OrderSymbol()==Symbol() && OrderProfit()<0)

{

MTL++;

}

}

}

MTL=0;

return(0);

}

 
Dan7974:
Как мне это закодировать?

Если предыдущие 6 сделок были убыточными, я попробовал это, и это не работает!!!

int MTL;

extern MaxTradeLoss=6;

int start()

{

for(int b=0;b<MaxTradeLoss;b++)

{

if(OrderSelect(b,SELECT_BY_POS,MODE_HISTORY)==true)

{

if(OrderSymbol()==Symbol() && OrderProfit()<0)

{

MTL++;

}

}

}

MTL=0;

return(0);

}

Ваше утверждение MTL=0; практически устанавливает MTL на ноль независимо от того, что он считал в цикле "for". Эта строка должна быть до цикла "for", а не после.