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

 

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

double TML=iCustom(NULL,0, "TrendManager",TM_Period,TM_Shift,0,shift);

double TMS=iCustom(NULL,0, "TrendManager",TM_Period,TM_Shift,1,shift);

double hasOpen = iCustom(NULL,0, "Heiken_Ashi_Smoothed",MaMetod,MaPeriod,MaPeriod2,1,shift) ;

double hasClose = iCustom(NULL,0, "Heiken_Ashi_Smoothed",MaMetod,MaPeriod,MaPeriod2,0,shift) ;

double HeikenAshiOpen=iCustom(NULL,0, "Heiken_Ashi_Smoothed",MaMetod,MaPeriod,MaPeriod2,2,shift);

double HeikenAshiClose=iCustom(NULL,0, "Heiken_Ashi_Smoothed",MaMetod,MaPeriod,MaPeriod2,3,shift);

double SDLL=iCustom(NULL,0, "Slope Direction Line",period,method,price,1,shift);

double SDLS=iCustom(NULL,0, "Slope Direction Line",period,method,price,2,shift);

buysig=false;

sellsig=false;

closebuy=false;

closesell=false;

bool Long = TML && SDLL && HeikenAshiOpen < HeikenAshiClose && hasOpen < hasClose;

bool Short = TMS && SDLS && HeikenAshiOpen > HeikenAshiClose && hasOpen > hasClose;

buysig = Long;

sellsig = Short;

closebuy=sellsig;

closesell = buysig;

Файлы:
 

Gidday

Я много читал в этих темах об индикаторах аши, но как мне заставить Heiken_Ashi_Smoothed показывать восходящий и нисходящий тренд, это кажется намного сложнее, чем я думал, нужно ли мне создать 4 переменные 2 для повышения и 2 для понижения, как показано ниже

double hasOpenLong=iCustom(NULL,0, "Heiken_Ashi_Smoothed",MaMetod,MaPeriod,MaPeriod2,1,shift) ;

double hasCloseLong=iCustom(NULL,0, "Heiken_Ashi_Smoothed",MaMetod,MaPeriod,MaPeriod2,3,shift) ;

double hasOpenShort=iCustom(NULL,0, "Heiken_Ashi_Smoothed",MaMetod,MaPeriod,MaPeriod2,0,shift) ;

double hasCloseShort=iCustom(NULL,0, "Heiken_Ashi_Smoothed",MaMetod,MaPeriod,MaPeriod2,2,shift) ;

Любая помощь будет замечательной

Спасибо

Бено

 

Хранение переменных

У меня есть индикатор, который создает объекты (стрелки) во время определенных событий на моем графике.

Допустим, на 1мин графике появилось 3 стрелки, затем я перехожу на 5мин и обратно на 1мин..... стрелки исчезли!!!

Это проблема хранения переменных? Вот код...

(above) extern int arrowCount = 1;

(if arrow should show)

ObjectCreate("Sniper ArrowDown"+arrowCount, OBJ_ARROW, 0, TimeCurrent(),Bid);

ObjectSet("Sniper ArrowDown"+arrowCount,OBJPROP_ARROWCODE,242);

ObjectSet("Sniper ArrowDown"+arrowCount, OBJPROP_COLOR,Red);

ObjectSet("Sniper ArrowDown"+arrowCount, OBJPROP_STYLE, STYLE_SOLID);

ObjectSet("Sniper ArrowDown"+arrowCount, OBJPROP_WIDTH, 1);

arrowCount++;

Есть идеи?

 
dharsant:
Разобрался, спасибо за помощь!!!

Рад, что вы разобрались.

Я просто подкинул несколько идей, я не был уверен, сработают они или нет.

Я думал о чем-то подобном, чтобы звук воспроизводился только один раз:

bool Play_Sound;

if ((latestlatestmain >= 0) && (latestmain < 0))

{

Play_Sound=true;

}

if (Play_Sound==true)

{

PlaySound("alert2.wav");

Play_sound=false;

}

Возможно?

 

Спасибо, Wolfe, я тоже думал об этом,

В итоге я использовал нечто похожее, но с использованием массива!

Спасибо, что уделили мне время.

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

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

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

Есть идеи?

 

Код одна сделка за определенное время?

нужна помощь с кодом?

вот как это работает:

открывать только определенное количество ордеров в определенное время (допустим, с 3 до 6 утра), в день или неделю.

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

 

Вот ea, с которой у меня проблемы, и indi's, я назвал ее The Abyss, потому что именно там я пытаюсь научиться кодировать. lol

Сейчас я ищу эти 2 ошибки на этом сайте и на сайте MQL4: автоматическая торговля на рынке Форекс, тестер стратегий и пользовательских индикаторов с MetaTrader.

2007.10.24 21:22:24 1998.11.20 06:00 The Abyss GBPJPY, Daily: Ошибка отправки ордера 130

2007.10.24 21:22:24 1998.11.20 06:00 The Abyss GBPJPY,Daily: недопустимое двойное число в качестве параметра 6 для функции OrderSend

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

Любая помощь будет замечательной

Спасибо

Бено

 
antone:
нужна помощь с кодом?

вот как это работает:

открыть только определенное количество заказов в определенное время (допустим, с 3 до 6 утра) или в день или неделю.

не откроет другую сделку, даже если создаст сигнал в это время.

Так что может ли кто-нибудь помочь мне, пожалуйста?

например, он будет торговать только одним ордером в 5 утра - 10 утра, но может торговать снова в другое время...

 

При использовании icustom в советнике как вы определяете, какие буферы и индексы использовать. Например, если я пытаюсь получить восходящий или нисходящий тренд от индикатора silvertrend или подобного. Возможно, я использую неправильную терминологию, но, надеюсь, вы понимаете, к чему я веду.

#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 Blue

#property indicator_color2 Red

//---- входные параметры

extern int RISK=3;

extern int SSP=9;

extern int CountBars=350;

//---- буферы

double val1[];

double val2[];

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

//| Пользовательская функция инициализации индикатора |

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

int init()

{

string short_name;

//---- строка индикатора

IndicatorBuffers(2);

SetIndexStyle(0,DRAW_HISTOGRAM,0,2);

SetIndexStyle(1,DRAW_HISTOGRAM,0,2);

SetIndexBuffer(0,val1);

SetIndexBuffer(1,val2);

 

для этих кодов это будет выглядеть так:

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

iCustom(NULL,0,"silvertrend",RISK,SSP,CountBars,0,0);

[/CODE]

Or like this:

[CODE]

iCustom(NULL,0,"silvertrend",3,9,350,0,0);

С уважением,

Kale