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

 

아이디어

OK 소년 소녀들

나는 CUF(일반적으로 사용되는 함수)를 만드는 아이디어를 가지고 놀았습니다. 내가 읽은 모든 것에서 당신은 EA 내에서 스크립트를 호출할 수 없습니다.

그럼에도 불구하고 - 나는 매번 바퀴를 다시 디자인해야 하는 것을 싫어하기 때문에 해결 방법을 생각하고 있습니다.

모두가 알고 있는 스크립트는 로드를 수행한 다음 바로 가기 키를 누르는 경우를 제외하고 로드를 다시 로드하지 않습니다.

이것은 내가 모든 EA에서 볼 수 있는 주요 주요 문제입니다. 계속하기 전에 어떤 시간 조건 또는 일부 조잡한 "수면" 조건이 통과하기를 기다리는 데 갇힌 것처럼 보입니다. 이것은 매우 불안정한 상황에서 몇 초 만에 큰돈을 벌 수 있는 주요 실패인 일이 찰나의 순간에 취소 및 판매될 가능성을 낮춥니다.

해결책? 전역 변수에서 작동하는 CUFF 표시기를 만드세요?? 누구든지 이것을 시도 했습니까? 표시기는 모든 틱 을 순환하므로 완벽합니다.

 

여러 표시기 및 막대 조건이 충족될 때 소리 또는 이메일 경고를 보낼 경고를 코딩하는 방법은 무엇입니까?

 

안녕,

초보자이기 때문에 내장된 metastock 함수: ref() 및 stochmomentum()이 metatrader의 일부 함수에 의해 구현되는지 묻고 싶습니다.

thnx

 

Darian은 위의 전역 예제를 참조하십시오. 당신이 원하는 것을 이메일로 /휘파람을 /하는 스크립트를 찾아 그것을 코딩하십시오. 변수가 모두 정확히 동시에 꺼지지 않는다는 점을 고려해야 하므로 변수를 다시 0으로 재설정하기 전에 몇 초/분 지연을 넣어야 합니다.

 

글로벌과 함께

이와 같이 표시기에 GlobalVarible을 추가할 수 있습니까?

if ( 트렌드[2]0 && 볼륨[0]>1 && !UpTrendAlert)

{

GlobalVariableSet("추세"+Symbol(),1);

// Print("UP" + GlobalVariableGet("trend"+Symbol())));

메시지 = " 매수 "+Symbol()+" M"+Period()+": 매수 신호";

if ( AlertMode>0 ) 경고(메시지);

UpTrendAlert=참; DownTrendAlert=거짓;

그런 다음 다음을 사용하여 EA에서 해당 GlobalVariable을 호출합니다.

정수 초기화() {

GlobalVariableDel("추세"+Symbol());

추세 = GlobalVariableGet("추세"+Symbol());

매수 = (추세 == 1);

매도 = (추세 == 2);

모든 도움 감사합니다

 

그러나 작동하지 않는 1개 이상의 통화를 거래하는 경우에는 가능합니다.

 

배열 문제, 도움이 필요합니다!

안녕,

미결 주문이 컷오프 포인트(예: $-1000)보다 더 많은 돈을 잃는지를 결정하는 함수 를 만들려고 합니다.

그런 다음 이 함수는 OrderTicket() 및 OrderProfit()을 두 개의 개별 배열에 저장하고 반환(1)으로 종료하여 컷오프 지점에 도달했음을 나타냅니다.

해당 배열에 값을 저장하기 전에 OrderTicket() 배열을 확인하여 이 주문이 이미 접수되었는지 확인해야 합니다.

OrderTicket 번호가 이미 배열에 저장되어 있는 경우 주문이 추가 $1000 손실되었는지 확인해야 합니다. 그렇다면 OrderProfit() 배열의 값을 새 값으로 바꾸고 return(1)을 사용하여 종료합니다. 새로운 컷오프 지점에 도달했음을 나타냅니다. 주문이 추가 $1000를 잃지 않은 경우(컷오프라고 함) 추가 $1000를 잃은 주문이 없음을 나타내기 위해 반환(0)해야 합니다.

나는 그것이 거의 작동한다고 생각하지만 (확실하지 않습니까?) 어떤 이유로 배열은 합법적 인 값과 함께 많은 '0'값으로 채워집니다. 배열의 출력은 다음과 같습니다.

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 431 ResumeArrayPrices[k] = -3042

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 425 ResumeArrayPrices[k] = -3042

ResumeArrayTickets[k] = 386 ResumeArrayPrices[k] = -1008

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 371 ResumeArrayPrices[k] = -12933

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 320 ResumeArrayPrices[k] = -6057

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 249 ResumeArrayPrices[k] = -5076

ResumeArrayTickets[k] = 241 ResumeArrayPrices[k] = -1017

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 230 ResumeArrayPrices[k] = -13122

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

ResumeArrayTickets[k] = 186 ResumeArrayPrices[k] = -4068

ResumeArrayTickets[k] = 128 ResumeArrayPrices[k] = -1008

ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0

[/code]

The following is my actual code:

[code]

int CheckForResume()

{

ResumeCheck = TimeLocal()+(PERIOD_M1*60)*5;

}

int arraycount1 =1;

int arraycount2 =1;

bool found = false;

int k;

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

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

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

{

if (OrderProfit()< Cutoff)

{

for (k=0; k<ArraySize(ResumeArrayTickets); k++)

{

if ((ResumeArrayTickets[k] == OrderTicket()) && ResumeArrayTickets[k] !=0)

{

found = true;

if (ResumeArrayPrices[k] + Cutoff < OrderProfit())

{

return (0);

}

else

{

Print ("ELSE");

arraycount1 = ArrayResize(ResumeArrayTickets,ArraySize(ResumeArrayTickets) + 1);

arraycount2 = ArrayResize(ResumeArrayPrices,ArraySize(ResumeArrayPrices) + 1);

ResumeArrayTickets[k] = OrderTicket();

ResumeArrayPrices[k] = OrderProfit();

return (1);

}

}

}

if (found == false)

{

arraycount1 = ArrayResize(ResumeArrayTickets,ArraySize(ResumeArrayTickets) + 1)'

arraycount2 = ArrayResize(ResumeArrayPrices,ArraySize(ResumeArrayPrices) + 1);

ResumeArrayTickets[k] = OrderTicket();

ResumeArrayPrices[k] = OrderProfit();

return (1);

}

}

}

return (0);

}

}

 

바 한 번 EA 새로 고침

안녕하세요, EA가 처음 초기화된 것처럼 반응하도록 EA를 새로 고치는 방법이 있습니까? (다시 시작하는 것처럼) Bar는 한 번만 수행해야 합니다. 예를 들어 30분에 한 번.

RefreshRates() 및 WindowRedraw()가 제대로 수행하지 않습니다.

또한 몇 가지 변수도 유지하고 데이터를 잃지 않고 싶습니다.

이 작업을 수행할 수 있는 방법이 있습니까?

나는 또한 지표에 대해서도 이것을 할 수 있기를 원합니다.

감사합니다.

 

프로그래밍 도움말

모두들 안녕,

차트의 시간을 기반으로 통화의 강도를 표시하도록 통화 강도 측정기를 수정하는 중입니다. 현재 사용되는 코드는 다음과 같습니다.

aHigh = MarketInfo(mySymbol,MODE_HIGH); // set a high today

aLow = MarketInfo(mySymbol,MODE_LOW); // set a low today

aBid = MarketInfo(mySymbol,MODE_BID); // set a last bid

aAsk = MarketInfo(mySymbol,MODE_ASK);

MODE_HIGH 및 MODE_LOW가 현재의 최고점과 최저점을 이해합니다. 대신 차트 현재 시간 프레임의 최고점과 최저점을 어떻게 얻을 수 있습니까?

감사해요!

추신 : 저는 프로그래머가 아니므로 작은 단어를 사용하십시오 :)

 

iHigh 및 iLow 기능 에 대한 도움말 설명서를 참조하십시오.

행운을 빕니다

럭스