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

 
asgard2:
안녕,

균형이 맞지 않는 괄호 오류로 인해 컴파일할 수 없습니다. 왜 이것이 불균형한지 알려줄 수 있는 사람이 있습니까?

감사해요

이 오류가 발생하면 [ 또는 { 또는 (

아마도 코드 어딘가에 {[(

코드의 일부를 확인하고 몇 가지 오류를 발견했습니다. 이 시도 :

if ((type == _OP_BUYSTOP) && (MayOpenDeferOrder && NextBuyStop_Order_Minutes !=0))//Time Delay for the next Buy Stop Order

{

int hstTotal=OrdersHistoryTotal();

for(i=0;i<hstTotal;i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) == false)

{

Print("Access to history failed ("+GetLastError()+")");

break;

}

else

{

if (OrderDelete() && (((TimeCurrent() - OrderCloseTime())/60) =< NextBuyStop_Order_Minutes) MayOpenDeferOrder = false;

}

}

또한 OrderDelete 기능은 아무 것도 확인하지 않기 때문에 코드의 마지막 부분(OrderDelete)이 작동하지 않을 것이라고 생각 합니다 . 따라서 주문 티켓과 함께 매개 변수를 전달해야 합니다. 이 대신 댓글을 확인하여 삭제된 주문을 인식할 수 있습니다. 삭제된 각 주문은 주석에 "취소됨"이 표시됩니다. OrderComment() 함수의 결과를 비교하여 이를 찾을 수 있습니다.

 

누군가 나를 도울 수 있습니까?

여보세요,

EA를 작성하려고 하는데 공식을 작성하는 데 도움이 필요합니다.

나는 공식이 이전 양초 종가(PCC1)와 양초 종가(PCC2) 사이의 차이를 계산하기를 원합니다(여러 쌍에서 실행할 것입니다). 홀=(PCC1-PCC2)

내 목표는 매수 또는 매도 신호를 보내는 것입니다.

부울 BuySignal=거짓;

부울 SellSignal=거짓;

if(HoL>0) BuySignal=true;

if(HoL<0) SellSignal=true;

도와주셔서 감사합니다.

 

...

EA의 한 인스턴스에서 여러 기호를 사용하려면 다음과 같이 사용할 수 있습니다.

double HoL=iClose(symbolName,0,1)-iClose(symbolName,0,2);[/php]Or to prevent some back testing surprises, a slightly more complicated code

int symbolShift1 = iBarShift(symbolName,0,Time[1]);

int symbolShift2 = iBarShift(symbolName,0,Time[2]);

double HoL = iClose(symbolName,0,symbolShift1)-iClose(symbolName,0,symbolShift2);

If you are going to use it only on symbol that your EA is attached to than this

[php]

double HoL=Close[1]-Close[2];

충분하다

추신: " symbolName "은 선택한 기호로 설정해야 합니다.

문안 인사

믈라덴

ForExTryo:
여보세요,

EA를 작성하려고 하는데 공식을 작성하는 데 도움이 필요합니다.

나는 공식이 이전 양초 종가(PCC1)와 양초 종가(PCC2) 사이의 차이를 계산하기를 원합니다(여러 쌍에서 실행할 것입니다). 홀=(PCC1-PCC2)

내 목표는 매수 또는 매도 신호를 보내는 것입니다.

부울 BuySignal=거짓;

부울 SellSignal=거짓;

if(HoL>0) BuySignal=true;

if(HoL<0) SellSignal=true;

도와주셔서 감사합니다.
 
 

TP 숨기기

바꾸다

void OpenBuy()

{

int ticket,err;

if (!GlobalVariableCheck("InTrade")) {

GlobalVariableSet("InTrade", CurTime()); // set lock indicator

ticket = OrderSend(Symbol(),OP_BUY,lot2,Ask,1,0,Ask+TP*Poin t,"Ask-StopLoss*Point,EA Order",magic,0,Red);

GlobalVariableDel("InTrade"); // clear lock indicator

}

}

void OpenSell()

{

int ticket,err;

if (!GlobalVariableCheck("InTrade")) {

GlobalVariableSet("InTrade", CurTime()); // set lock indicator

ticket = OrderSend(Symbol(),OP_SELL,lot2,Bid,1,0,Bid-TP*Point,Bid+StopLoss*Point,"EA Order",magic,0,Red);

GlobalVariableDel("InTrade"); // clear lock indicator

}

}[/CODE]

to

[CODE]void OpenBuy()

{

int ticket,err;

if (!GlobalVariableCheck("InTrade")) {

GlobalVariableSet("InTrade", CurTime()); // set lock indicator

ticket = OrderSend(Symbol(),OP_BUY,lot2,Ask,1,0,0,"Ask-StopLoss*Point,EA Order",magic,0,Red);

GlobalVariableDel("InTrade"); // clear lock indicator

}

}

void OpenSell()

{

int ticket,err;

if (!GlobalVariableCheck("InTrade")) {

GlobalVariableSet("InTrade", CurTime()); // set lock indicator

ticket = OrderSend(Symbol(),OP_SELL,lot2,Bid,1,0,0,"EA Order",magic,0,Red);

GlobalVariableDel("InTrade"); // clear lock indicator

}

}
 

바이 스톱 주문 사이의 거리

안녕하세요 여러분, 삭제된 바이스톱 주문과 다음 바이스톱 주문 사이의 거리를 구현하려고 합니다.

나는 마지막 주문이 다른 것이 아닌 한 작동하는 이 코드를 작성했습니다. 내역에서 삭제된 바이스톱 주문을 선택하는 방법을 모르겠습니다. 누군가가 올바른 방향으로 나를 가리킬 수 있다면 정말 감사하겠습니다.

감사해요

// 다음 "Buy Stop" 주문에 대한 시간 지연이 삭제됩니다.

//Time Delay for the next Buy Stop Order

if ((type == _OP_BUY) && (MayOpenDeferOrder && NextBuyStop_Order_Minutes !=0))

{

total = OrdersHistoryTotal();

for(e = total - 1; e >= 0; e--)

{

OrderSelect(e, SELECT_BY_POS,MODE_HISTORY);

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

{

if(((TimeCurrent() - OrderOpenTime())/60) < NextBuyStop_Order_Minutes) MayOpenDeferOrder = false;

}

}

}

 
asgard2:
안녕하세요 여러분,

제 생각에는 그게 더 나은 것 같아요:

//Time Delay for the next Buy Stop Order

if ((type == _OP_BUY) && (MayOpenDeferOrder && NextBuyStop_Order_Minutes !=0))

{

total = OrdersHistoryTotal();

for(e = total - 1; e >= 0; e--)

{

OrderSelect(e, SELECT_BY_POS,MODE_HISTORY);

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

if(((TimeCurrent() - OrderOpenTime())/60) < NextBuyStop_Order_Minutes) MayOpenDeferOrder = false;

break;

}

}
 
Roger09:
제 생각에는 그게 더 나은 것 같아요:

안녕하세요 로저

코딩을 처음 접하는데 왜 "중단"을 사용합니까? 명령문이 끝나면 자동으로 중단됩니까?

또한 기록에서 삭제된 주문을 선택하는 방법에 대한 단서가 있습니까?

감사해요

 

당신은 우리에게 코드의 일부만을 보여주고 나는 추측만 할 수 있습니다.

마지막 주문이 마감된 이후에 내역 확인 을 시작한다고 해서 마감 시간을 알아야 합니다. 가장 최근에 마감된 주문은 히스토리의 마지막에 있으므로 다른 주문을 알 필요가 없으며 "중단" 확인을 중지합니다.

기록에서 올바른 순서를 찾는 방법은 수없이 많습니다. 유형, 매직 번호, 주석 등이 있습니다.

 

간단한 EA를 위한 코더 필요

수익성 있는 시스템: 거래당 최소 50핍 -200핍 이익

1시간제

1개의 지표와 ATR(20)만 사용

tp/sl/trailing stop이 있는 단순 EA

EA 코더가 무료로 도와드릴 수 있습니다. 이메일로 PM을 보내주세요.

사유: