-130 видимо из-за попытки установить отложенник, а цена ушла выше или ниже) в коде есть строчки закоментированные с Маркетлевел.. это и есть будущее слежение за ценой, чтоб не было этой ошибки)
-наименьшее значение лоу или хай от OrderOpenPrice для стопа) Если бай, то наименьший лоу H4 из 0 свечи и 1 свечи... и наибольший хай для сел.. Вобщем наименьший лоу/хай для стопа
-130 видимо из-за попытки установить отложенник, а цена ушла выше или ниже) в коде есть строчки закоментированные с Маркетлевел.. это и есть будущее слежение за ценой, чтоб не было этой ошибки)
-наименьшее значение лоу или хай от OrderOpenPrice для стопа) Если бай, то наименьший лоу H4 из 0 свечи и 1 свечи... и наибольший хай для сел.. Вобщем наименьший лоу/хай для стопа
Исправить нада, сейчас для buy выбираеться наибольший лоу, и наименьший хай для sell.
imho лучше наибольшее и тралить по первому бару, другая логика :)
со StopLevel.
можно Enter изменить
или сразу открыть ордер
или еще что придумать)
Цена открытия должна быть дальше на стоплевел от Bid или Ask. От цены открытия считать тейки и стопы, которые тоже должны быть не ближе стоплевел. Хотя для них можно сделать блок закрытия по профиту или просадке
//-------Поиск входа для установки ордеров, удаление старых ордеров и установка новыхvoid UpTrend(){if((iOpen(NULL,PERIOD_H4,1)-iClose(NULL,PERIOD_H4,1)<=0)&&(iOpen(NULL,PERIOD_H4,2)-iClose(NULL,PERIOD_H4,2)>0)){
DellAllOrders();
Enter=iHigh(NULL,PERIOD_H4,1)+(Ask-Bid)+10*Point;if(Ask<=Enter-StopLevel){RefreshRates();OrderSend(Symbol(),OP_BUYSTOP,0.1, Enter,0,0, Enter+Profit,0,0,0,Green);}}}void DownTrend(){if((iOpen(NULL,PERIOD_H4,1)-iClose(NULL,PERIOD_H4,1)>=0)&&(iOpen(NULL,PERIOD_H4,2)-iClose(NULL,PERIOD_H4,2)<0)){
DellAllOrders();
Enter=iLow(NULL,PERIOD_H4,1)-10*Point;if(Bid>=Enter+StopLevel){RefreshRates();OrderSend(Symbol(),OP_SELLSTOP,0.1, Enter,0,0, Enter-Profit,0,0,0,Green);}}}//-------Вычисление стопа и утановкаvoid SetStop(){RefreshRates();
b0=iLow(NULL,PERIOD_H4,0)-10*Point;
b1=iLow(NULL,PERIOD_H4,1)-10*Point;
s0=iHigh(NULL,PERIOD_H4,0)+(Ask-Bid)+10*Point;
s1=iHigh(NULL,PERIOD_H4,1)+(Ask-Bid)+10*Point;if(Type==0){
StopLoss=MathMax(b0,b1);//Функция возвращает максимальное из двух числовых значенийif(Bid-StopLoss<StopLevel) StopLoss=MathMin(b0,b1);elseOrderModify(OrderTicket(),OrderOpenPrice(),StopLoss,OrderTakeProfit(),0,Red);}if(Type==1){
StopLoss=MathMin(s0,s1);//Функция возвращает минимальное из двух числовых значенийif(StopLoss-Ask<StopLevel) StopLoss=MathMax(s0,s1);elseOrderModify(OrderTicket(),OrderOpenPrice(),StopLoss,OrderTakeProfit(),0,Red);}}
ошибка 130 постоянно.
StopLevel проверять надо, для StopLoss и Enter.
и исчо
должно выбираться наибольшее?
-130 видимо из-за попытки установить отложенник, а цена ушла выше или ниже) в коде есть строчки закоментированные с Маркетлевел.. это и есть будущее слежение за ценой, чтоб не было этой ошибки)
-наименьшее значение лоу или хай от OrderOpenPrice для стопа) Если бай, то наименьший лоу H4 из 0 свечи и 1 свечи... и наибольший хай для сел.. Вобщем наименьший лоу/хай для стопа
-130 видимо из-за попытки установить отложенник, а цена ушла выше или ниже) в коде есть строчки закоментированные с Маркетлевел.. это и есть будущее слежение за ценой, чтоб не было этой ошибки)
-наименьшее значение лоу или хай от OrderOpenPrice для стопа) Если бай, то наименьший лоу H4 из 0 свечи и 1 свечи... и наибольший хай для сел.. Вобщем наименьший лоу/хай для стопа
Исправить нада, сейчас для buy выбираеться наибольший лоу, и наименьший хай для sell.
или так
Исправить нада, сейчас для buy выбираеться наибольший лоу, и наименьший хай для sell.
По логике так и есть, всё правильно!) Это же выбор для стопа (он выбирается наименьший в пп. из двух вариантов)
Пример:

Но ваш вариант лучше и проще... на него и исправлю, только наоборот) Сенькс.Исправил код на 5 стр.
По логике так и есть, всё правильно!) Это же выбор для стопа (он выбирается наименьший в пп. из двух вариантов)
таки для buy наименьшее)
imho лучше наибольшее и тралить по первому бару, другая логика :)
со StopLevel.
можно Enter изменить
или сразу открыть ордер
или еще что придумать)
таки для buy наименьшее)
imho лучше наибольшее и тралить по первому бару, другая логика :)
со StopLevel.
можно Enter изменить
или сразу открыть ордер
или еще что придумать)
Цена открытия должна быть дальше на стоплевел от Bid или Ask. От цены открытия считать тейки и стопы, которые тоже должны быть не ближе стоплевел. Хотя для них можно сделать блок закрытия по профиту или просадке
...imho лучше наибольшее и тралить по первому бару, другая логика :)
Делал и так.. но результат по тестингу лучше у текущего стопа)
Поправил стоплевел...
...или сразу открыть ордер
Надёжнее всётаки отложенниками входить) А то или ДЦ чего выдаст или нонфармы откроют тебя очень далеко..))
*код подправил
Поправил стоплевел...
Надёжнее всётаки отложенниками входить) А то или ДЦ чего выдаст или нонфармы откроют тебя очень далеко..))
*код подправил
Правим старые баги, добавляем новые :D
тож поправил)
Правим старые баги, добавляем новые :D
для чего?
И MarketInfo() возвращает вроде и так тип double, зачем его переводить в Point?..
Вот это тоже... два условия..
Вроде всё, что заметил.. Лучше конечно объяснить что для чего менялось) Чтоб мне на будущее иметь ввиду)
это для чего? не пойму..)
И MarketInfo() возвращает вроде и так тип double, зачем его переводить в Point?..
Вот это тоже...
0.5*Point - дельта, можно и 0.7 :)
см. сравнение вещественных чисел.
возможно будет правильно работать и без этого. в большинстве случаев)
ошибка была
возвращает значение в пипсах. умножил на Point.
Было
при true StopLoss присваивается новое значение,
иначе модифицируеться ордер.
ошибки нет, но нада или крестик снять иль штаны одеть)