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

 

спасибо

Спасибо. Вы - смак жизни.

 
BC Brett:
Хотел бы я знать ответ.

Я только что закончил писать свой первый советник и попробовал протестировать его в Strategy Tester.

Я получал ошибки, отображаемые в журнале ST, поэтому я попробовал использовать функцию Print в моем советнике, чтобы отладить проблемы. Пока что я устранил несколько ошибок таким образом, но это медленный процесс.

В метаредакторе в меню редактирования есть "toggle breakpoint" ... как использовать точку останова?

 

Для информации:

- тема о функции электронной почты (как кодировать) https://www.mql5.com/en/forum/174336

- хорошая статья с некоторыми инструментами https://www.mql5.com/en/forum/176053

 

Код для невидимых TP и SL от брокеров

Привет всем,

В связи с паранойей брокеров, охотящихся за SL и расширяющих спреды, чтобы избежать TP, я ищу информацию о том, как скрыть TP и SL от брокеров.

Я знаю, что, отправляя TP и SL брокеру, в случае отключения от сети ваш ордер находится в "безопасности". При удаленном хранении информации существует опасность больших потерь в случае потери связи.

Есть ли у кого-нибудь советник или пример кода, как скрыть TP и SL от брокера?

Спасибо!

Майк

 

Этот советник имеет его

Привет, MikeP

Я думаю, что этот советник содержит то, что вы ищете. Пожалуйста, напишите мне, если это то, что вы ищете, у меня есть другая идея по этому поводу.

Файлы:
jlpigrid.mq4  8 kb
 

Помогите упростить кусок кода

Привет!

Я не профессиональный кодер (см. ниже!). Этот код работает нормально, но можно ли его упростить? Например, с помощью цикла while/for? Я желаю самый легкий код! Этот очень "тяжелый" и я получаю ошибку "internal stack overflow-simplify the program, please"!!!

Это индикатор в отдельном окне.

В коде примера он отображает повышение или понижение МА для нескольких ТФ.

Спасибо за помощь.

int start()

{

string MAfast_Trend_1, MAfast_Trend_5, MAfast_Trend_15;

double x;

color color_indic;

// period M1

double FastMA_1_1 = iMA(NULL,PERIOD_M1,FastMAPeriod,0,MAMethod,MAPrice,MAShift);

double FastMA_2_1 = iMA(NULL,PERIOD_M1,FastMAPeriod,0,MAMethod,MAPrice,MAShift+1);

if ((FastMA_1_1 > FastMA_2_1)) { MAfast_Trend_1 = "UP"; x = 256; color_indic = Lime; }

if ((FastMA_1_1 < FastMA_2_1)) { MAfast_Trend_1 = "DOWN"; x = 246; color_indic = Red; }

ObjectCreate("Trend_MAfast_1", OBJ_LABEL, WindowFind("xxxxxxx"), 0, 0);

ObjectSetText("Trend_MAfast_1",MAfast_Trend_1,7, "Verdana", color_indic);

ObjectSet("Trend_MAfast_1", OBJPROP_CORNER, 0);

ObjectSet("Trend_MAfast_1", OBJPROP_XDISTANCE, x);

ObjectSet("Trend_MAfast_1", OBJPROP_YDISTANCE, 22);

// period M5

double FastMA_1_5 = iMA(NULL,PERIOD_M5,FastMAPeriod,0,MAMethod,MAPrice,MAShift);

double FastMA_2_5 = iMA(NULL,PERIOD_M5,FastMAPeriod,0,MAMethod,MAPrice,MAShift+1);

if ((FastMA_1_5 > FastMA_2_5)) { MAfast_Trend_5 = "UP"; x = 256; color_indic = Lime; }

if ((FastMA_1_5 < FastMA_2_5)) { MAfast_Trend_5 = "DOWN"; x = 246; color_indic = Red; }

ObjectCreate("Trend_MAfast_5", OBJ_LABEL, WindowFind("xxxxxxx"), 0, 0);

ObjectSetText("Trend_MAfast_5",MAfast_Trend_5,7, "Verdana", color_indic);

ObjectSet("Trend_MAfast_5", OBJPROP_CORNER, 0);

ObjectSet("Trend_MAfast_5", OBJPROP_XDISTANCE, x);

ObjectSet("Trend_MAfast_5", OBJPROP_YDISTANCE, 37);

// period M15

double FastMA_1_15 = iMA(NULL,PERIOD_M15,FastMAPeriod,0,MAMethod,MAPrice,MAShift);

double FastMA_2_15 = iMA(NULL,PERIOD_M15,FastMAPeriod,0,MAMethod,MAPrice,MAShift+1);

if ((FastMA_1_15 > FastMA_2_15)) { MAfast_Trend_15 = "UP"; x = 256; color_indic = Lime; }

if ((FastMA_1_15 < FastMA_2_15)) { MAfast_Trend_15 = "DOWN"; x = 246; color_indic = Red; }

ObjectCreate("Trend_MAfast_15", OBJ_LABEL, WindowFind("xxxxxxx"), 0, 0);

ObjectSetText("Trend_MAfast_15",MAfast_Trend_15,7, "Verdana", color_indic);

ObjectSet("Trend_MAfast_15", OBJPROP_CORNER, 0);

ObjectSet("Trend_MAfast_15", OBJPROP_XDISTANCE, x);

ObjectSet("Trend_MAfast_15", OBJPROP_YDISTANCE, 52);

etc ...............

return(0);

}
 

Помощь по коду? Только одна сделка на свечу

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

Я видел код раньше, но не могу его найти. Если кто-нибудь может указать мне на программу, которая имеет правильный код или показать мне, как это делается.

Это делается в UniversalMa ea, но там мне не все понятно.

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

 

Это здесь https://www.mql5.com/en/forum/173026

Я собираю все функции на этой нити https://www.mql5.com/en/forum/174329

 

Еще раз спасибо

Здравствуйте, NewDigital, как всегда спасибо за быстрый ответ.

спасибо

 

Вот несколько способов упростить ваш код:

ЗАМЕНИТЬ ОТДЕЛЬНЫЕ ЗНАЧЕНИЯ ИНДИКАТОРА ФУНКЦИЕЙ

double FastMA_1_5 = iMA(NULL,PERIOD_M5,FastMAPeriod,0,MAMethod,MAPrice,MAShift);

double FastMA_1_15 = iMA(NULL,PERIOD_M15,FastMAPeriod,0,MAMethod,MAPrice,MAShift);

.... превращается в это с добавленной функцией

maVal(5,1);

maVal(15,1);

ФУНКЦИЯ, КОТОРУЮ ОНИ ВЫЗЫВАЮТ, ПРИВЕДЕНА НИЖЕ:

double maVal(int tf, int shift)

{

return ( iMA(NULL,tf,FastMAPeriod,0,MAMethod,MAPrice,shift) );

}

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

Также замените другие отдельные переменные, которые у вас есть, например, строковые переменные, строковым массивом. Массивы будут очень хорошо работать в циклах и упростят ваш код, потому что вам придется делать меньше объявлений.

Строка MAfast_Trend_1, MAfast_Trend_5, MAfast_Trend_15;

.... становится этим.....

string MAfast_Trend [3];

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