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

 
Dave137:
void TrailingPositions() {

double pBid, pAsk, pp;

pp = MarketInfo(OrderSymbol(), MODE_POINT);

if (OrderType()==OP_BUY) {

pBid = MarketInfo(OrderSymbol(), MODE_BID);

//BreakEven routine

if (BreakEven>0) {

if ((pBid-OrderOpenPrice())>BreakEven*pp) {

if ((OrderStopLoss()-OrderOpenPrice())<0) {

ModifyStopLoss(OrderOpenPrice()+0*pp);

}

}

}

if (TrailingStop>0) {

if ((pBid-OrderOpenPrice())>TrailingStop_Over135*pp){ //15 pips TS

ModifyStopLoss(pBid-TrailingStop_Over135*pp);

if (pBid-OrderOpenPrice()>TrailingStop_Over90*pp && pBid-OrderOpenPrice()<TrailingStop_Over135*pp){ //55 pips TS

ModifyStopLoss(pBid-TrailingStop_Over90*pp);

if ((OrderOpenPrice()-pAsk)>TrailingStop +TrailingStep+1*pp && (OrderOpenPrice()-pAsk) < TrailingStop_Over90*pp+TrailingStep-1*pp || OrderStopLoss()==0) {//75 pips TS

ModifyStopLoss(pAsk+TrailingStop*pp);

return;

}

}

}

}

}[/PHP]

Three levels of Trailing Stop:

1) 75 Pips TS up to first 90 Pips Profit.

2) 55 Pips TS after 90 but only up to 135 pips profit.

3) 15 Pips TS after 135 pips profit.

The problem I am having is the Trailing Stop moves both up and down as the price moves up and down . . It should just be moving up as the price profit increases and stop if the price starts dropping! How do I get it to stop moving down as the price drops - The Trailing Stop is acting like a Yo-Yo as the price moves up and down.

I am not sure how to stop this from happening?? Please, I need your expertise!

Humbly,

Dave

например:[PHP]ts = pBid - TrailingStop_Over135*pp;

if (ts > OrderOpenPrice() && ts > OrderStopLoss()) ModifyStopLoss(ts);

 

пожалуйста, могу ли я попросить о помощи

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

большое спасибо заранее

Также я только что понял кое-что - парень по имени Бен Тейлор продает советника, который выглядит почти точно так же, как тот, который запрограммировал гуру кодера - возможно, это один из его клиентов - lol

Если это не так - мы должны сообщить об этом гуру кодеров.

Файлы:
 
Michel:
Если необходимо, проверьте сначала, что вы находитесь позже 8 утра:
if(Hour() < 8) return;[/PHP]

Then, find the max and min of the current day. (if its ok for you, its easier than from 8 am): [PHP]double Max = iHigh(Symbol(), PERIOD_D1, 0);

double Min = iLow(Symbol(), PERIOD_D1, 0);

int Range = (Max - Min) / Point;

if(Range > 90) return;

...

Привет, Мишель:

Я обращаюсь к вашему коду:

if(Hour() < 8) return;

Я изменил код следующим образом:

if(Hour()>12) hr_x=1;

.....

.....

.....

.....

if(hr_x==1) signal=50;

Но у меня все столбики гистограммы 50!!!!.

Если вы посмотрите на график ниже, кажется, что команда "Hour" не распознает его!!!

К вашему сведению, я использую 30-минутный график, может ли быть иначе. Я пытался переключиться на часовой график, но проблема все еще существует!

Я также пробовал "if(Hour() < 8) return; ", но все бары исчезли!!!

Я перепробовал много всего, но так и не смог заставить его работать.

Можете ли вы снова дать мне совет? Спасибо

Файлы:
untitled_5.jpg  115 kb
 
n3sve1k4s:
Здравствуйте codersguru не могли бы вы добавить сигнал с всплывающим окном и стрелками к индикатору ниже?

может ли кто-нибудь добавить сигнал????

 

Спасибо Мишелю за правильное исправление моей тройной кодировки трейлинг-стопа. Это, надеюсь, окончательно исправит мое новое создание ea. Без щедрости знаний каждого, я бы не смог программировать на этом языке. Я записываю всю новую информацию, которую я получаю по этому языку. Надеюсь, когда появится MT5, кодировка не изменится так радикально - я бы не хотел начинать все заново! Спасибо еще раз!!!

Дэйв

<<<

 
solamax:

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

большое спасибо заранее

Также я только что понял кое-что - парень по имени Бен Тейлор продает советника, который выглядит почти точно так же, как тот, который запрограммировал гуру кодера - возможно, это один из его клиентов - lol

если это не так - мы должны сообщить об этом гуру кодирования
double Buy2_1 = iOpen(NULL, 0, Current + 0); //Statement in question for crossover! double Buy2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

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

double Buy1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Buy1_2 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 1); //1-Back

double Buy2_1 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Buy2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 1); //1-Back

double Sell1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Sell1_2 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 1); //1-Back

double Sell2_1 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Sell2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 1); //1-Back

if(Buy1_1>Sell2_1 && Buy1_2<Sell2_2) Then Buy; //Произошло правильное пересечение 'UP'!

if(Sell1_1Buy2_2) Then Sell; //Произошло правильное пересечение "вниз"!

Дэйв

 

Это не совсем то, что вы ищете, но все равно посмотрите. Прикрепите к другому графику, и он будет отслеживать все прибыли и убытки с графиков, на которых есть работающие ea.

 

Дэйв - вы просто благословение:)

Dave137:
double Buy2_1 = iOpen(NULL, 0, Current + 0); //Statement in question for crossover! double Buy2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

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

double Buy1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Buy1_2 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 1); //1-Back

double Buy2_1 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Buy2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 1); //1-Back

double Sell1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Sell1_2 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 1); //1-Back

double Sell2_1 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Sell2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 1); //1-Back

if(Buy1_1>Sell2_1 && Buy1_2<Sell2_2) Then Buy; //Произошло правильное пересечение 'UP'!

if(Sell1_1Buy2_2) Then Sell; //Произошло правильное пересечение "вниз"!

Дэйв

Большое спасибо - я попробую.

 

Требуется помощь в кодировании

Любая помощь приветствуется.

Это должно быть в советнике как компонент процедуры закрытия сделки.

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

С практической точки зрения, формулировка будет выглядеть следующим образом. "если моя открытая прибыль на X пунктов выше, чем максимальный баланс на счете за все время, закройте все сделки".

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

Заранее спасибо.

 

Спасибо за ваш ответ, но вы правы, это не совсем то, что я ищу.

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

Мне нужен код, возвращающий "высшую точку" баланса счета.

Еще раз спасибо, любая помощь будет оценена по достоинству.

Dave137:
Это не совсем то, что вы ищете, но все равно посмотрите. Прикрепите к другому графику, и он будет отслеживать все прибыли и убытки с графиков, на которых есть работающие ea.