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

 

Помощь в создании индикаторов для ea

Отличная стратегия, найденная мной, много пипсов в ожидании

ПРИВЕТ ВСЕМ Я НАШЕЛ СТРАТЕГИЮ НА ВСЕХ ВАЛЮТАХ И МНЕ НУЖНО ЧТОБЫ ВЫ СДЕЛАЛИ EA ДЛЯ МЕНЯ ПРОВЕРЬТЕ ЭТО...

1 MA_Period= 2 MA_shift= -5 MA_Method= 3 (YELLOW)

2 MA настройки MA_Period= 4 MA_shift= -5 MA_Method= 3 (КРАСНЫЙ)

3 настройки МА MA_Period= 200 MA_shift= 0 MA_Method= 0 (ЖЕЛТЫЙ)

КОРОТКИЙ СИГНАЛ: КОГДА ЖЕЛТЫЙ И КРАСНЫЙ ЦВЕТА ПЕРЕСЕКАЮТ ТИЛ ЛИБО ВВЕРХ, ЛИБО ВНИЗ.

ДАВАЙТЕ СДЕЛАЕМ НЕСКОЛЬКО EA, ЧТОБЫ ЭТО РАБОТАЛО, И ДАВАЙТЕ СДЕЛАЕМ EA МОДИФИЦИРОВАННОЙ САМОЙ, КОГДА ЦЕНА ДВИЖЕТСЯ К 10 ПИПСАМ НЕТ СТОП ЛОСС БУДЕТ ДВИГАТЬСЯ К 2 ПИПСАМ ЖДУ ЛУЧШЕГО ПРОГРАММИСТА....

 
 

Нужна помощь в программировании мониторинга цены

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

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

//| Auto Pipforia.mq4 |

//| Copyright ?2009, MetaQuotes Software Corp. |

//| Программное обеспечение для торговли на рынке Форекс: Торговая платформа MetaTrader 4 |

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

extern double AnchorSpace = 0.0017;

extern double GridSpace = 0.0017;

extern double AnchorLot = 0.03;

extern double Level1 = 0.06;

extern double Level2 = 0.11;

extern double Level3 = 0.11;

extern double Level4Up = 0.11;

extern int MagicNumber = 1001;

extern double Profit_Target=0;

double SendCount=0;

int start()

{

int divider=(Ask-Bid)/2;

double MidPrice=Ask-divider;

double Buy=MidPrice+AnchorSpace;

SendOrders(Buy);

MonitorProfit();

return(0);

}

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

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

void SendOrders(double Buy)

{

if(SendCount<3){

OrderSend(Symbol(),OP_BUYSTOP,AnchorLot,Buy,0,0,0, "MagicNumber",MagicNumber,0,Green);

Buy=Buy+GridSpace;

OrderSend(Symbol(),OP_BUYSTOP,Level1,Buy,0,0,0, "MagicNumber",MagicNumber,0,Green);

Buy=Buy+GridSpace;

OrderSend(Symbol(),OP_BUYSTOP,Level2,Buy,0,0,0, "MagicNumber",MagicNumber,0,Green);

SendCount=3;

}

else if (SendCount==3)

{

return();

}

}

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

void MonitorProfit()

{

// double Percent=Profit_Percentage/100;

int total = OrdersTotal();

double MyCurrentProfit=0;

for (int cnt = 0 ; cnt < total ; cnt++)

{

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if (OrderMagicNumber() == MagicNumber)

MyCurrentProfit += OrderProfit();

}

if (MyCurrentProfit>= Profit_Target){

for(int i=total-1;i>=0;i--)

{

OrderSelect(i, SELECT_BY_POS);

if (OrderMagicNumber() == MagicNumber)

{

OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(),()), 5, Red );

OrderDelete( OrderTicket() );

}

}

}

else()

{

return();

}

}

// вот часть, которую нужно запрограммировать.

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

void MonitorPrice()

{

if(Buy-Ask<=20 Point || Bid-Sell<=20 Point)

{

 

To tendyhk-

Ваш вопрос не совсем понятен, но "20 пунктов" следует читать как "20*пункт".

Big Be

 

To Kimito2

Я верю, что это можно сделать, и я верю, что смогу это сделать. Большинство задач у меня уже есть в моем собственном длинном советнике. Это не будет дешево, потому что я ценю свое время.

Big Be

 

как заключить сделку с циклом?

привет

У меня есть советник, и я хотел бы, чтобы он работал с циклом.

У меня есть 5 переменных

double ma1 = iMA(NULL, 0, 1, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double sar = iSAR(NULL, 0, 0.02, 0.2, Current + 0);

double Macd=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,Current + 0);

double Signal=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,Current + 0);

string var_trading="ok";

условием для торговли является :

******************************

if (Period()==1)

{

double ma_buy = ma1>sar && Macd>Signal && var_trading=="ok" ;

}

******************************

И вот что я хочу:

1/ начало торговли

2/ значение для var_trading стало "нет" --> var_trading="нет"

3/ Окончание сделки (тейкпрофит или стоплосс)

4/ Новая сделка может начаться, потому что var_trading=="no"

5/ ВАЖНО: когда ma1 var_trading=="ok"

6/ Когда ma1 > sar снова и если Macd>Signal ====> начинается новая сделка!

7/ и значение для var_trading стало "нет" --> var_trading="нет"

8/ etc....

*******************************

Как я могу сделать?

По многим причинам я не хочу этого (см. мой код, пожалуйста)

double ma_buy = ma1p1sar && Macd>Signal && var_trading=="ok" ;

С наилучшими пожеланиями

Файлы:
thl.mq4  22 kb
 

Программисты, пожалуйста, помогите мне в этом

Я пытаюсь преобразовать индикатор в советник. Индикатор использует "int counted_bars = IndicatorCounted()" для подсчета баров, в советнике я думаю я не могу использовать это, так как это связано с индикатором.

Как я могу решить эту проблему.

Ваша помощь будет оценена по достоинству

Спасибо

 

Если вы хотите использовать индикатор в советнике, лучше/проще всего использовать функцию iCustom. Посмотрите в файле справки, как ее использовать.

Удачи

Lux

 

@luxinterior, спасибо за ваш ответ

 

мне выдало вот такую ошибку что это значит?

2009.06.16 08:23:11 TestGenerator: ошибка несопоставленных данных (превышен лимит объема 66 в 2009.06.15 20:45)