코딩 도움말 - 페이지 109

 

보류 중인 주문 수정

안녕하세요 여러분, 보류 중인 주문에 대한 가격 수정을 프로그래밍하려고 했습니다. 제 첫 EA 중 하나입니다. 나중에 복잡한 것도 작성할 수 있도록 EA를 많이 작성하고 싶습니다. 내 주문 수정으로 내 데모 계정의 차트에 넣을 때 작동하지 않는 문제가 있습니다. 누구든지 실수를 찾아 수정할 수 있습니까? 감사해요. 정말 더 이상 단서가 없습니다. 건배

{ RefreshRates(); double ppoint=MarketInfo(OrderSymbol(), MODE_POINT); int total=OrdersTotal(); double pBid=MarketInfo(OrderSymbol(), MODE_BID); double pAsk=MarketInfo(OrderSymbol(), MODE_ASK); double priceNew; //---- for(int i=0; i50*ppoint) { priceNew=(pBid-50*ppoint); OrderModify(OrderTicket(),priceNew,0,OrderStopLoss(),OrderTakeProfit()); Print("Modified Order"); } } } if (OrderType()==OP_SELLSTOP) { if (OrderOpenPrice()-pAsk>50*ppoint) { priceNew=(pAsk+50*ppoint); OrderModify(OrderTicket(),priceNew,0,OrderStopLoss(),OrderTakeProfit()); Print("Modified Order"); } } } } }
 

로버트, 지금까지 도와주셔서 감사합니다. 여기에 코드를 올바르게 게시하려면 어떻게 해야 합니까? 감사합니다.

 
fabian103:
로버트, 지금까지 도와주셔서 감사합니다. 여기에 코드를 올바르게 게시하려면 어떻게 해야 합니까? 감사합니다.

파비안103

해당 PHP 코드 상자에서 간단한 복사 및 붙여넣기를 수행해야 합니다.

어떤 이유로 귀하의 코드는 "모든 곳에" 있습니다. 시도 해봐. 잘 안되면 수정하고 싶은 부분을 별도의 파일로 첨부해 보세요. (첨부도구 이용 - 그림에 표시된 부분)

파일:
attach.gif  36 kb
 

안녕,

확률적 지표 내부의 볼린저 밴드 값을 계산하려고 했지만 그렇게 할 수 없었습니다.

쌍에 대한 값을 얻었지만 0과 100 사이에 있어야 하는 값이 필요합니다.

포인터가 있습니까?

감사해요

 
metcalfe:
안녕,

확률적 지표 내부의 볼린저 밴드 값을 계산하려고 했지만 그렇게 할 수 없었습니다.

쌍에 대한 값을 얻었지만 0과 100 사이에 있어야 하는 값이 필요합니다.

포인터가 있습니까?

감사해요

나는 당신이 확률론의 볼린저 밴드 를 계산하는 것을 의미한다고 가정합니다(기호 가격 대신 확률론적 값 사용). 항상 기본 차트 가격을 사용하기 때문에 내장된 iBands()로는 그렇게 할 수 없습니다.

iBandsOnArray()를 사용할 수 있지만 이를 사용하면 영원한 메타 트레이더 문제가 발생합니다. 편차는 정수 곱셈기만이 될 수 있습니다. 편차를 분수 값으로 설정할 수 없습니다. 따라서 가장 좋은 방법은 iStdDevOnArray() 및 iMaOnArry() 함수를 사용하여 임의의 값과 임의의 너비로 구성된 자체 볼린저 밴드를 계산하는 것입니다. 확률적 코드의 경우 다음과 같습니다.

for(int i=limit; i>=0; i--) stoch = iStochastic(NULL,0,StochPeriod,1,StochSlowing,MODE_SMA,StochPrice,MODE_MAIN,i);

for( i=limit; i>=0; i--)

{

double dev = iStdDevOnArray(stoch,0,BollingerPeriod,0,MODE_SMA,i);

bollmi = iMAOnArray(stoch,0,BollingerPeriod,0,MODE_SMA,i);

bollup = bollmi+BollingerDeviations*dev;

bolldn = bollmi-BollingerDeviations*dev;

}

표시기 자체도 부착하여 계속 실험할 수 있습니다. 차트에 다음과 같이 표시됩니다.

____________________

추신: 밴드 값은 편차에 사용하는 밴드 승수와 볼린저 밴드 계산 자체의 길이에 따라 0과 100 경계를 초과할 수 있습니다(스토캐스틱이 0 또는 100 주위를 맴도는 경우).

 
mladen:
나는 당신이 확률론의 볼린저 밴드를 계산하는 것을 의미한다고 가정합니다(기호 가격 대신 확률론적 값 사용). 항상 기본 차트 가격을 사용하기 때문에 내장된 iBands()로는 그렇게 할 수 없습니다.

iBandsOnArray()를 사용할 수 있지만 이를 사용하면 영원한 메타 트레이더 문제가 발생합니다. 편차는 정수 곱셈기만이 될 수 있습니다. 편차를 분수 값으로 설정할 수 없습니다. 따라서 가장 좋은 방법은 iStdDevOnArray() 및 iMaOnArry() 함수를 사용하여 임의의 값과 임의의 너비로 구성된 자체 볼린저 밴드를 계산하는 것입니다. 확률적 코드의 경우 다음과 같습니다.

정말 최고입니다!!!!!

정말 감사합니다, 나는 오랫동안 노력했습니다.

그리고 초고속 답변 감사합니다.

멍청한 질문 하나 더.

indi는 매우 잘 작동하지만 bands 값에 대해 ea에서 올바른 숫자를 얻을 수 없습니다.

예를 들어 그림과 같이 숫자 81...67..54....를 첨부했습니다.

 
metcalfe:
정말 최고입니다!!!!!

정말 감사합니다, 나는 오랫동안 노력했습니다.

그리고 초고속 답변 감사합니다.

멍청한 질문 하나 더.

indi는 매우 잘 작동하지만 bands 값에 대해 ea에서 올바른 숫자를 얻을 수 없습니다.

예를 들어 그림과 같이 숫자 81...67..54....를 첨부했습니다.

:) :)

해당 예제의 확률적 길이는 32로 설정됩니다. 이것이 기본 매개변수와 비교한 유일한 차이점입니다.

 
mladen:
:):):) 해당 예제의 확률적 길이는 32로 설정됩니다. 이것이 기본 매개변수와 비교한 유일한 차이점입니다.

죄송합니다..제가 묻고 싶은 것을 잘 설명하지 못했습니다.

내 ea에서 나는 그림과 같이 stoch 창에서 예를 들어 상단 또는 하단 밴드의 번호를 얻으려고합니다. 예를 들어 ea에서 81.8116인 상위 밴드를 검색하고 다음과 같이 코딩하고 싶습니다.

Comment(iCustom(NULL,0,"이름",24,0,MODE_UPPER,0)); \\인디의 이름을 변경했습니다.

하지만 정확한 번호가 없습니다.

내가 어디에서 잘못 되었습니까?

감사해요

 
metcalfe:
죄송합니다..제가 묻고 싶은 것을 잘 설명하지 못했습니다.

내 ea에서 나는 그림과 같이 stoch 창에서 예를 들어 상단 또는 하단 밴드의 번호를 얻으려고합니다. 예를 들어 ea에서 81.8116인 상위 밴드를 검색하고 다음과 같이 코딩하고 싶습니다.

Comment(iCustom(NULL,0,"이름",24,0,MODE_UPPER,0)); \\인디의 이름을 변경했습니다.

하지만 정확한 번호가 없습니다.

내가 어디에서 잘못 되었습니까?

감사해요

다음과 같이 하십시오.

double upperBand = iCustom(NULL,0,"name",24,1,0,0);[/PHP]

The problem was that you can not put 0 in place of the slowing parameter since in that case metatrader will cause an error when calculating stochastic, and you will always get 0 as a return value, so use 1 instead (it is equivalent to no smoothing of the stochastic value). Also, better to use buffer numbers (MODE_MAIN is a reserved word in MQL - it 0 but in some cases they are not what you expect them to be). To get the rest of the values you would then have to write something similar to this :

[PHP]double middleBand = iCustom(NULL,0,"name",24,1,1,0);

double lowerBand = iCustom(NULL,0,"name",24,1,2,0);
 

확인...

정말 감사합니다.

넌 나를 구했다....