코딩하는 방법? - 페이지 313

 

안녕,

코드로 현재 활성 차트 기호의 구매 또는 판매 주문 만 수정할 수 있습니까?

WindowsPriceonDropped 함수를 사용하여 주문을 여는 스크립트에서 매우 유용할 것입니다.

고맙습니다

 

...

다시오,

다음과 같이 시도하십시오.

for (int i=OrdersTotal()-1; i>=0; i--)

{

if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES)==false) continue;

if (OrderSymbol()!=Symbol()) continue;

if (OrderType()==OP_BUY || OrderType()==OP_SELL)

{

// do the proccessing you wish here

}

}

dasio:
안녕,

코드로 현재 활성 차트 기호의 구매 또는 판매 주문만 수정할 수 있습니까?

WindowsPriceonDropped 함수를 사용하여 주문을 여는 스크립트에서 매우 유용할 것입니다.

고맙습니다
 

누가 도전을 원하는가?

다음을 수행하려면 코드가 필요합니다. 첨부된 스크린샷을 참조하세요. 이것은 구매 거래가 될 것입니다.

나는 for 루프, 엉망인 if 조건을 시도했지만 둘 다 내가 찾고 있는 결과를 생성하지 못했습니다.

간단한 것 같지만 작동하지 못했습니다.

파일:
maexample.jpg  54 kb
 

입력 조건은 다음과 유사하게 작성될 수 있습니다.

double pipMultiplier = 1;

if (Digits==3 || Digits==5) pipMultiplier = 10;

double ma = iMA(NULL,0,20,0,MODE_SMA,PRICE_CLOSE,1);

bool openBuy = (Low[1]>ma && High[1]<(ma+5.0*Point*pipMultiplier));

if (openBuy)

{

// your code here

}

cyber1:
다음을 수행하려면 코드가 필요합니다. 첨부된 스크린샷을 참조하세요. 이것은 구매 거래가 될 것입니다.

나는 for 루프, 엉망인 if 조건을 시도했지만 둘 다 내가 찾고 있는 결과를 생성하지 못했습니다.

간단한 것 같지만 작동하지 못했습니다.
 
mladen:
입력 조건은 다음과 유사하게 작성될 수 있습니다.
double pipMultiplier = 1;

if (Digits==3 || Digits==5) pipMultiplier = 10;

double ma = iMA(NULL,0,20,0,MODE_SMA,PRICE_CLOSE,1);

bool openBuy = (Low[1]>ma && High[1]<(ma+5.0*Point*pipMultiplier));

if (openBuy)

{

// your code here

}

하지만 그것보다 훨씬 더 많은 것이 있습니다. 게시한 코드는 이동 평균 을 가로지르는 막대에 대한 신호를 줄 것입니다. 그러나 MA+5를 초과하지 않는 한 최대 5개의 막대까지 스트래들 막대를 지나는 막대에 거래를 입력하는 방법도 필요합니다. 내가 스트래들 바에서 매수 신호를 받지 않는 이유는 스트래들 바에서 TRUE가 아닐 수도 있지만 스트래들 바를 지나 최대 5바까지의 바에서 TRUE인 경우 TRUE 값을 표시해야 하는 또 다른 지표가 있기 때문입니다. MA +5 한도를 초과했는데 여전히 거래를 할 수 있습니다. 설정당 하나만 여러 거래를 하지 않습니다.

다음은 내가 지금까지 가지고 있는 것입니다. 이 시점에서 저는 아래에 화살표가 있는 적격 막대만 표시하고 있습니다. 구매만 가능합니다. 일단 해결되면 주문을 실행하기 위해 코드를 입력합니다. 간단해 보이지만 분명한 것을 놓치고 있지 않는 한 그렇지 않습니다.

//+------------------------------------------------------------------+

double Poin;

//+------------------------------------------------------------------+

//| Custom initialization function |

//+------------------------------------------------------------------+

int init()

{

//---- indicators

if (Point==0.00001) Poin=0.0001;

else {

if (Point==0.001) Poin=0.01;

else Poin=Point;

}

//----

return(0);

}

//+------------------------------------------------------------------+

// +

//+------------------------------------------------------------------+

int deinit(){

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator iteration function |

//+------------------------------------------------------------------+

int start(){

int MAM1StartBar=1;

int M1MAEntryPoint1=0;

int M1MAEntryPoint2=5;

string sObjName;

//------Indicators-------------//

double MAM0= iMA(NULL,0,20,0,0,0,MAM1StartBar);

double MAM1= iMA(NULL,0,20,0,0,0,MAM1StartBar+1);

double M1High0 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar),Digits);

double M1High1 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+1),Digits);

double M1High2 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+2),Digits);

double M1High3 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+3),Digits);

double M1High4 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+4),Digits);

double M1High5 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+5),Digits);

double M1Low0 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar),Digits);

double M1Low1 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+1),Digits);

double M1Low2 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+2),Digits);

double M1Low3 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+3),Digits);

double M1Low4 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+4),Digits);

double M1Low5 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+5),Digits);

// double MAM1TRL1=NormalizeDouble(MAM0+M1MAEntryPoint1*Poin,Digits);

// double MAM1TRL2=NormalizeDouble(MAM0+M1MAEntryPoint2*Poin,Digits);

//Blue arrow indicates straddle bar

if(M1High0>= MAM0 && M1Low0<=MAM0){

sObjName="Test_BLine1"+Time[MAM1StartBar];

ObjectCreate(sObjName, OBJ_ARROW, 0, Time[MAM1StartBar],Low[MAM1StartBar]-1.5*Poin);

ObjectSet(sObjName, OBJPROP_ARROWCODE, 241);

ObjectSet(sObjName, OBJPROP_COLOR, Blue);

}

//Aqua arrow indicates straddle bar+1

if(M1Low1=MAM0){

if(M1High1<=MAM0+M1MAEntryPoint2*Poin){

if(M1Low0 > MAM0){

sObjName="Test_BLine2"+Time[MAM1StartBar];

ObjectCreate(sObjName, OBJ_ARROW, 0, Time[MAM1StartBar],Low[MAM1StartBar]-1*Poin);

ObjectSet(sObjName, OBJPROP_ARROWCODE, 241);

ObjectSet(sObjName, OBJPROP_COLOR, Aqua);

}

}

}

//----

return(0);

}

 

이 스크린샷에서는 막대 3이 MA +5 제한을 초과하기 때문에 막대 4에서 중단해야 합니다. 즉, 막대 4에서 막대 3이 MA +5 제한을 초과했는지 확인 해야 합니다. 이 무역 설정.

MA +5 제한을 초과한 바가 없기 때문에 여기에서 5개의 바 모두가 적합합니다.

파일:
 

이 스크린샷에서는 막대 3이 MA +5 제한을 초과하므로 막대 4에서 중단해야 합니다. 즉, 막대 4에서 막대 3이 MA +5 제한을 초과했는지 확인 해야 합니다. 무역 설정.

MA +5 제한을 초과한 바가 없기 때문에 여기에서 5개의 바 모두가 적합합니다.

 

...

사이버1

귀하의 예에서 내가 보는 한 귀하가 설명하는대로 중단 할 수 있으려면 미래도 알아야합니다 ( "중단"이 적용되는 규칙을 표시하지 않고 go 신호를 반환하기 때문에)

반면에 조건이 입력되도록 모든 막대를 다시 테스트하려고하면 결국에는 항상 "규칙 위반"이 발생하여 해당 위치에 진입할 수 없게 됩니다.

cyber1:
이 스크린샷에서는 막대 3이 MA +5 제한을 초과하므로 막대 4에서 중단해야 합니다. 즉, 막대 4에서 막대 3이 MA +5 제한을 초과했는지 확인해야 합니다. 무역 설정.

MA +5 제한을 초과한 바가 없기 때문에 여기에서 5개의 바 모두가 적합합니다.

 

오픈 트레이드 EA 모두 닫기

누구든지 이 ea를 만드는 데 도움을 줄 수 있습니까?

이 EA는 목표 손익에 도달하면 열린 거래 쌍을 닫을 것입니다.

그것이 모두 닫히면 열린 거래를 모니터링하기 시작합니다.

나는 이것을 하는 데 한계가 있다.

이 ea는 각 쌍의 주요 ea와 분리됩니다.

 

신호 및 저항/지원 dinamyc 라인.

이 표시기를 MT4 언어로 번역하는 데 도움을 주시겠습니까?

a:=(hhv(닫기,tpr)+llv(닫기,tpr)+닫기)/3;

b:=(a1*2)-hhv(닫기,tpr);

이동 b:=mov(b,tpr,simple);

c:=(a1*2)-llv(닫기,tpr);

이동 c:=mov(c,tpr,simple);

d:=(hhv(닫기,tpr/2)+llv(닫기,tpr/2)+닫기)/3;

이동 d:=mov(d,tpr/2,simple);

스트림:=(b+c+d)/3;

움직이는 스트림:=mov(stream,tpr,simple).

hhv= 최대 기간 값(선택한 기간의 종가 중 가장 높은 값)

llv= 최소 기간 값(선택한 기간의 종가 중 가장 낮은 값)

tpr=기간(1에서 원하는 대로)

mov = 이동 평균.

출력에는 "stream"과 "moving stream"이 있어야 합니다! "b", "움직임 b", "c", "움직임 c", "d" 및 "이동 d"가 있어도 나쁘지 않습니다!

감사해요.

이 포럼은 훌륭합니다 ......

루마트

파일:
immagine.jpg  258 kb