묻다! - 페이지 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);

 

도움을 요청할 수 있습니다

다른 사람에게 내 코드가 어디가 잘못되었는지 살펴보라고 요청할 수 있습니까? 저는 프로그래머가 아니며 이에 대한 도움을 주시면 감사하겠습니다.

미리 감사드립니다

또한 나는 방금 무언가를 깨달았습니다. 코더의 전문가가 프로그래밍한 것과 거의 똑같은 모양의 EA를 판매하는 Ben Taylor라는 사람이 있습니다. 아마도 그의 고객 중 하나일 것입니다. 롤

그렇지 않은 경우 - 코더 전문가에게 이에 대해 알려야 합니다.

파일:
 
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) 반환;

다음과 같이 코드를 수정했습니다.

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

.....

.....

.....

.....

if(hr_x==1) 신호=50;

그러나 나는 모든 히스토그램 막대 50을 가지고 있었다!!!!

아래 차트를 보시면 "시" 명령어가 인식하지 못하는 것 같습니다!!!

참고로 저는 30분 차트를 사용하고 있는데 다른 차트가 있습니까? 1시간 차트로 전환하려고 했지만 문제가 여전히 존재합니다!

나는 또한 "if(Hour() < 8) return; "을 시도했지만 모든 막대가 사라졌습니다!!!

나는 많은 것을 시도했지만 여전히 작동하지 않습니다.

나에게 다시 조언 할 수 있습니까? 감사해요

파일:
untitled_5.jpg  115 kb
 
n3sve1k4s:
안녕하세요 codersguru 아래 표시기에 팝업 및 화살표가 있는 신호를 추가할 수 있습니까?

아무도 신호를 추가할 수 있습니까???

 

내 트리플 트레일링 스톱 코딩에 대한 적절한 수정에 대해 Michel에게 감사합니다. 이것은 내 새로운 EA 생성에 대한 최종 수정 사항이 되기를 바랍니다. 모든 사람의 관대함 없이는 이 언어를 프로그래밍할 수 없었을 것입니다. 나는 이 언어로 얻은 모든 새로운 정보를 기록해 둡니다. MT5가 도입되면 코딩이 급진적으로 바뀌지 않기를 바랍니다. 처음부터 다시 시작하고 싶지는 않습니다! 다시 한번 감사합니다!!

데이브

<<<

 
solamax:

다른 사람에게 내 코드가 어디가 잘못되었는지 살펴보라고 요청할 수 있습니까? 저는 프로그래머가 아니며 이에 대한 도움을 주시면 감사하겠습니다.

미리 감사드립니다

또한 나는 방금 무언가를 깨달았습니다. 코더의 전문가가 프로그래밍한 것과 거의 똑같은 모양의 EA를 판매하는 Ben Taylor라는 사람이 있습니다. 아마도 그의 고객 중 하나일 것입니다. 롤

그렇지 않은 경우 - 코더 전문가에게 이에 대해 알려야 합니다.
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);

문제 영역을 0으로 만들어야 한다면 위의 이 코드가 될 것입니다. 매수와 매도를 위한 크로스오버가 필요합니다.

이중 구매1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, 현재 + 0);

이중 구매1_2 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, 현재 + 1 ); //1-뒤로

이중 구매2_1 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, 현재 + 0);

이중 구매2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, 현재 + 1 ); //1-뒤로

이중 Sell1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, 현재 + 0);

이중 Sell1_2 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, 현재 + 1 ); //1-뒤로

이중 Sell2_1 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, 현재 + 0);

이중 Sell2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, 현재 + 1 ); //1-뒤로

if(구매1_1>판매2_1 &&구매1_2<판매2_2) 그럼 구매; // 적절한 'UP' 크로스오버가 발생했습니다!

if(Sell1_1Buy2_2) 그럼 매도; // 적절한 'DOWN' 크로스오버가 발생했습니다!

데이브

 

이것은 당신이 찾고있는 것이 아니지만 어쨌든 살펴보십시오. 다른 그래프에 첨부하면 작동하는 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);

문제 영역을 0으로 만들어야 한다면 위의 이 코드가 될 것입니다. 매수와 매도를 위한 크로스오버가 필요합니다.

이중 구매1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, 현재 + 0);

이중 구매1_2 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, 현재 + 1 ); //1-뒤로

이중 구매2_1 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, 현재 + 0);

이중 구매2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, 현재 + 1 ); //1-뒤로

이중 Sell1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, 현재 + 0);

이중 Sell1_2 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, 현재 + 1 ); //1-뒤로

이중 Sell2_1 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, 현재 + 0);

이중 Sell2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, 현재 + 1 ); //1-뒤로

if(구매1_1>판매2_1 &&구매1_2<판매2_2) 그럼 구매; // 적절한 'UP' 크로스오버가 발생했습니다!

if(Sell1_1Buy2_2) 그럼 매도; // 적절한 'DOWN' 크로스오버가 발생했습니다!

데이브

정말 감사합니다 - 해보겠습니다

 

코딩 도움이 필요합니다

도움을 주시면 감사하겠습니다..

이것은 무역 폐쇄 루틴의 구성 요소로 EA에 들어갈 것입니다.

항상 계정의 가장 높은 역사적 잔액을 반환하는 변수를 만들어야 합니다. 배열이 필요할 것 같은데요?

실용적인 측면에서 언어는 말할 것입니다. "내 오픈 이익이 계정의 사상 최고 잔고보다 X-pips 높으면 모든 거래를 닫으십시오."

누군가가 변수를 도울 수 있다면 나머지는 코딩할 수 있다고 생각합니다.

미리 감사드립니다.

 

답장을 보내주셔서 감사합니다. 하지만 당신이 맞습니다. 그것들은 제가 찾고 있는 것이 아닙니다.

아직 문제를 해결할 수 있는 코드가 없습니다.

계정 잔액 의 "하이 워터마크"를 반환하려면 코드가 필요합니다.

다시 한 번 감사드립니다. 도움을 주시면 감사하겠습니다.

Dave137:
이것은 당신이 찾고있는 것이 아니지만 어쨌든 살펴보십시오. 다른 그래프에 첨부하면 작동하는 ea가 있는 그래프의 모든 이익, 손실을 모니터링합니다.
사유: