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

 
denis68:
matrixebiz 이 두 줄을 삭제한다는 것은 무엇을 의미합니까? 어떻게 해야 하나요? 시도한 AC 표시기의 코드에 들어갈 수 없습니다.

MetaEditor에서 Accelerator.mq4를 열고(Indicator 폴더에 있음) 이 두 줄 앞에 //를 입력한 다음 새 이름 AcceleratorMod.mq4로 저장한 다음 컴파일을 클릭합니다.

파일:
 
hiachiever:
아니오, 그것은 옳지 않습니다.

for 루프에서 6에서 시작하여 1로 감소합니다. 이것은 마지막 루프에서 for 루프가 "if (i == 1) qqeacross = True;"를 수행한다는 것을 의미합니다. 확인하다. 최종 결과는 qqeacross가 발생한 경우 출력이 참이라는 것입니다.

이것이 나타날 수 있는 유일한 문제는 qqeacross가 이전 루프에서 true로 설정된 경우입니다. 이것을 극복하려면 qqeacross = false가 있어야 합니다. for 루프 전에. 이런 식으로 qqeacross = true이면 방금 완료된 루프에 의해 설정되었음을 확인할 수 있습니다.

건배,

성취자

따라서 "if (i == 1) qqeacross = True;"라고 표시되더라도 그러면 i=4(카운트다운 때문에), qqeacross는 여전히 = True?

 

감사합니다!

hiachiever:
이를 수행하는 방법은 전역 범위(즉, 초기화 전에)에서 vriable을 만드는 것입니다.

int BarCount;

정수 초기화()

그런 다음 손절 코드에서 다음을 사용하십시오.

if (BarCount<막대)

{

SL=iLow(Symbol(),Period(),iLowest(Symbol(),Period(),MODE_LOW,StopLossBars,0));

StopLossBars++;

BarCount=바;

}

이렇게 하면 각각의 새 막대에서 StopLossBars가 1씩 증가합니다.

코드에 추가되는 유일한 것은 새로운 거래가 열릴 때 'StopLossBars'를 원래 기본값으로 재설정하는 것입니다.

건배,

성공자

감사합니다, hiachiever님 . 작은 부탁 하나 더 부탁드리고 싶지만 매우 친절하게 도와주셨습니다.

귀하의 코드가 어떻게 작동하는지 이해하고 있으며 이를 EA에 복사할 수 있다고 확신합니다. . StopLossBars를 기본값으로 재설정하는 방법을 잘 모르겠습니다. 이것은 EA의 끝 부분에 있는 롱 또는 숏 코드입니다.

void goLong()

{

int ticket = OrderSend(Symbol(),OP_BUY,GetLots(100),Ask,maxSlippage,0,0,"Long",MagicNumber,0,Green);

if (screenshots) WindowScreenShot(Symbol()+Period()+"_"+Hour()+Minute()+"_.gif",1024,768);

if (showAlerts) Alert(Symbol()+" "+Period()+" TrendLevel at "+DoubleToStr(Level,0)+": Going Long");

Print(Symbol()+" "+Period()+" TrendLevel at "+DoubleToStr(Level,0)+": Going Long");

}

void goShort()

{

int ticket = OrderSend(Symbol(),OP_SELL,GetLots(100),Bid,maxSlippage,0,0,"Short",MagicNumber,0,Red);

if (screenshots) WindowScreenShot(Symbol()+Period()+"_"+Hour()+Minute()+"_.gif",1024,768);

if (showAlerts) Alert(Symbol()+" "+Period()+" TrendLevel at "+DoubleToStr(Level,0)+": Going Short");

Print(Symbol()+" "+Period()+" TrendLevel at "+DoubleToStr(Level,0)+": Going Short");

}

double stopLoss(int ordertype)

StopLossBars를 재설정하는 코드를 좀 도와주시겠습니까?

다시 한번 감사합니다.

 

Matrixebiz 이제 ea에 다음 줄을 추가했을 때 ea를 컴파일할 수 없습니다.

이중 ac1 = iCustom(NULL, 0, "AcceleratorMod", 1, 1);

이중 ac2 = iCustom(NULL, 0, "AcceleratorMod", 2, 1);

이중 ac11 = iCustom(NULL, 0, "AcceleratorMod", 1, 2);

이중 ac22 = iCustom(NULL, 0, "AcceleratorMod", 2, 2);

부울 구매 = ac2==0 && ac11==0; // 빨간색이 라임으로 변경

부울 액셀 = ac1==0 && ac22==0; // 라임이 빨간색으로 바뀝니다.

12개의 오류가 발생합니다. AC 변수가 정의되지 않았습니다.

도움을 주셔서 감사합니다.

 

StopLossBars가 사용자 입력을 통해 설정되는 전역 변수라고 가정합니다. 맞죠?

글쎄, 내가 할 일은 이런 것입니다.

사용자 입력 변수를 gStopLossBars와 같은 것으로 만든 다음 초기화 함수 에서 이를 로컬 변수에 할당합니다.

StopLossBars = gStopLossBars;

그런 다음 매수 및 매도 기능에서 동일한 할당을 사용하여 StopLossBars를 재설정하십시오.

말이 됩니까?

도움이 되기를 바랍니다.

럭스

 

Ac+ao+psar

안녕하세요 여러분,

누구나 AC+AO+PSAR를 결합하여 경고/이메일과 함께 새로운 지표가 될 수 있습니까? 저에게 PM 해주세요. 고맙습니다

 
luxinterior:
StopLossBars가 사용자 입력을 통해 설정되는 전역 변수라고 가정합니다. 맞죠?

글쎄, 내가 할 일은 이런 것입니다.

사용자 입력 변수를 gStopLossBars와 같은 것으로 만든 다음 초기화 함수에서 이를 로컬 변수에 할당합니다.

StopLossBars = gStopLossBars;

그런 다음 매수 및 매도 기능에서 동일한 할당을 사용하여 StopLossBars를 재설정하십시오.

말이 됩니까?

도움이 되기를 바랍니다.

럭스

그것은 완벽한 의미가 있습니다. 정말 감사합니다.

 

새 양초가 시작되는 시점을 어떻게 알 수 있습니까?

새로운 바가 시작될 때(일일 TF) 주문을 보류 하는 EA를 어떻게 만들 수 있습니까?

감사해요

 
:: 안녕! 이 표시기 내부의 코드를 확인하십시오 ... (오픈 시간에만 해당되며 EA가 아닙니다)
tcl:
새로운 바가 시작될 때(일일 TF) 주문을 보류하는 EA를 어떻게 만들 수 있습니까? 감사해요
 

누구든지 이것을 반복하고 반복하는 것을 막을 수 있습니까?

void BEM ()

{

인트 핍;

for (int k=0; k<OrdersTotal();k++)

{

주문 선택(k, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY && OrderSymbol()== 기호() && OrderMagicNumber()== 매직)

{

핍 = (입찰가 - OrderOpenPrice())/포인트;

if ((핍 >= BE) && (OrderStopLoss() < OrderOpenPrice()))

{

OrderModify(OrderTicket(), OrderOpenPrice(),OrderOpenPrice()+ 12*포인트, OrderTakeProfit(), 0, 라이트블루);

}

}

if(OrderType()==OP_SELL && OrderSymbol()== 기호() && OrderMagicNumber()== 매직)

{

핍 = (OrderOpenPrice() - 묻기)/포인트;

if ((핍 >= BE) && (OrderStopLoss() > OrderOpenPrice()))

{

OrderModify(OrderTicket(), OrderOpenPrice(),OrderOpenPrice()-12*포인트, OrderTakeProfit(), 0, 핑크);

}

}

}

}