Спрашивайте! - страница 71

 

Спрошено и отвечено

Привет всем,

Я думал, что получил ответы на свои вопросы с помощью следующего кода:

double range[5];

for(int i=1;i<5;i++)

{

range={High-Low};

int Max=ArrayBsearch(range,10,WHOLE_ARRAY,1,MODE_ASCEND);

double MaxRange=(High[Max]-Low[Max])/Point;

}

Print("Max Range: ",MaxRange," found at index: ",Max);

Но он по-прежнему возвращает только последний индекс, а не наибольший индекс диапазона.

Буду признателен за любую дальнейшую помощь.

SaxMan

 

Исправлена ошибка

SaxMan:
Привет всем,

Я думал, что получил ответы на свои вопросы с помощью следующего кода:

double range[5];

for(int i=1;i<5;i++)

{

range={High-Low};

int Max=ArrayBsearch(range,10,WHOLE_ARRAY,1,MODE_ASCEND);

double MaxRange=(High[Max]-Low[Max])/Point;

}

Print("Max Range: ",MaxRange," found at index: ",Max);

[/code]

But it still just returns the last index not the largest range index.

Any further help would be appreciated.

SaxMan

Вот исправление:

[код]

double range[5];

for(int i=1;i<5;i++)

{

range={High-Low};

int Max=ArrayMaximum(range);

double MaxRange=(High[Max]-Low[Max])/Point;

}

Print("Максимальный диапазон: ",MaxRange," найден по индексу: ",Max);

Это можно использовать для получения наибольшего/меньшего (используя ArrayMinimum(range)) значения массива для сравнения любых переменных.

Надеюсь, это поможет,

SaxMan

 

Тот же код с дополнениями

Добавлено:

* Минимальный диапазон

* Вертикальные линии для выделения полос максимального и минимального диапазона:

double range[2000];

for(int i=1;i<2000;i++)

{

range={High-Low};

int Max=ArrayMaximum(range,WHOLE_ARRAY,1);

int Min=ArrayMinimum(range,WHOLE_ARRAY,1);

double MaxRange=(High[Max]-Low[Max])/Point;

double MinRange=(High[Min]-Low[Min])/Point;

}

Print("Max Range: ",MaxRange," pips found at index: ",Max);

Print("Min Range: ",MinRange," pips found at index: ",Min);

int time1=Time[Max];

int time2=Time[Min];

ObjectCreate("stats1",OBJ_VLINE,0,0,0);

ObjectSet("stats1", OBJPROP_TIME1, time1);

ObjectSet("stats1", OBJPROP_COLOR, Red);

ObjectSet("stats1", OBJPROP_WIDTH, 1);

ObjectCreate("stats2",OBJ_VLINE,0,0,0);

ObjectSet("stats2", OBJPROP_TIME1, time2);

ObjectSet("stats2", OBJPROP_COLOR, Blue);

ObjectSet("stats2", OBJPROP_WIDTH, 1);
 

Код соответствует, но не отображает значение

extern Bool Direction_Up=true;

if(Direction_Up==true) Dir="UP"; ///////////Это неправильное преобразование - как мне преобразовать его в правильный синтаксис????

ObjectCreate("Dir", OBJ_LABEL, 0, 0, 0, 0);

ObjectSetText("Dir", 10, "Arial", White);///////////Это неправильное преобразование - Как мне заставить его отображать UP на экране????

ObjectSet("Dir", OBJPROP_CORNER, 1);

ObjectSet("Dir", OBJPROP_XDISTANCE, 36);

ObjectSet("Dir", OBJPROP_YDISTANCE, 120);///

Dave <<<
 

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

int start()

{

int i;

if ((Year() >= X) && (Month() >= Y))

{

Comment("===========",expired,"===========");

return(0);

}

GetPosition = StrToTime(StrGetPosition);

StartOrderTime = StrToTime(StrStartOrderTime);

EndOrderTime = StrToTime(StrEndOrderTime);

return(0);

Мой вопрос заключается в следующем:

GetPosition, StartOrderTime, EndOrderTime будут выполнены?

Спасибо

 

Вопросы

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

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

Вот один из них:

Если я задаю код, например.... на покупку в 15:30 (время большинства новостей), я проверяю экономический календарь.

if (Hour()==15)

{

if (Minute()>=30)

{

if (Seconds()>=00)

[/PHP]

After this, something like this goes:

[PHP]

OrderSend(Symbol().......................

Все пишут его по-разному, хе-хе.

Почему это не может быть одинаково?

Ладно, вот в чем дело. В приведенном выше коде я хочу, чтобы OrderSend........ и продолжающая часть создали BuyStop на 30 пунктов выше цены в 15:30:00 и SellStop на 25 пунктов ниже цены в 15:30:00.

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

Я потратил недели, пытаясь разобраться в этом коде. Я не шучу. Так что, кто-нибудь, кто занимается кодированием в mql4, поможет мне?

---Julia---

 
iscuba11:
extern Bool Direction_Up=true;

if(Direction_Up==true) Dir="UP"; ///////////Это неправильное преобразование - как мне преобразовать его в правильный синтаксис????

ObjectCreate("Dir", OBJ_LABEL, 0, 0, 0, 0);

ObjectSetText("Dir", 10, "Arial", White);///////////Это неправильное преобразование - Как мне заставить его отображать UP на экране????

ObjectSet("Dir", OBJPROP_CORNER, 1);

ObjectSet("Dir", OBJPROP_XDISTANCE, 36);

ObjectSet("Dir", OBJPROP_YDISTANCE, 120);///

Дэйв <<<

Привет Iscuba11,

см. код для исправления и объяснения

extern bool Direction_Up=true; //-- bool with a lower case "b"

string Dir; //-- Dir has to be declared as a string

if(Direction_Up==true) Dir="UP";

ObjectCreate("Dir", OBJ_LABEL, 0, 0, 0);

ObjectSetText("Dir",Dir, 10, "Arial", White); // -- you left out the text to print - you named the object only.

ObjectSet("Dir", OBJPROP_CORNER, 1);

ObjectSet("Dir", OBJPROP_XDISTANCE, 36);

ObjectSet("Dir", OBJPROP_YDISTANCE, 120);

Надеюсь, это поможет,

SaxMan

 

Недели?!

MQL4: автоматическая торговля на Форекс, тестер стратегий и пользовательские индикаторы с MetaTrader

поиск OrderSend() - docs

Цитата

OrderSend - Документация MQL4

int OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE)

symbol - Символ для торговли.

cmd - Тип операции. Он может быть любым из перечисления торговых операций.

volume - Количество лотов.

цена - Предпочтительная цена сделки.

slippage - Максимальное проскальзывание цены для ордеров на покупку или продажу.

stoploss - Уровень стоп-лосса.

takeprofit - Уровень тейк-профита.

комментарий - Текст комментария к ордеру. Последняя часть комментария может быть изменена сервером.

magic - Магический номер ордера. Может использоваться в качестве идентификатора, задаваемого пользователем.

expiration - Время истечения ордера (только для отложенных ордеров).

arrow_color - Цвет стрелки открытия на графике. Если параметр отсутствует или имеет значение CLR_NONE, стрелка открытия на графике не рисуется.

Таким образом, в нашем случае мы имеем следующее:

OrderSend(Symbol(),OP_BUYSTOP,0.1,Ask+30*Point,3,0,0,NULL,1,0); OrderSend(Symbol(),OP_SELLSTOP,0.1,Bid-25*Point,3,0,0,NULL,1,0);

Вот и все!

Ни стоплосса, ни тейкпрофита.

Обратите внимание: ваш брокер (скорее всего) не будет принимать новые ордера в 15:30, даже не мечтайте об этом. Да, это будет работать на демо, но не на реальном счете - не раньше, чем за 5 минут до новостей и не меньше, чем через 3 минуты после новостей.

Используйте поисковые системы

Google

Yahoo!

и другие.

PS:

если вы хотите, чтобы я написал для вас советника, напишите мне.

 

Вы сделали мой день и выходные с исправлением кода. Огромное спасибо!

Пусть у вас будут благословенные выходные!

Искренне,

Дэйв

<<<
 

Как можно использовать ObjectCreate на индикаторе-отдельном окне в отличие от графика-окна???? Это было бы удобно!

Дэйв <<<
Причина обращения: