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

 

2010년 차트를 공부하다

템플릿을 사용하여 무언가를 만들 수 있습니다. - 스토캐스틱 리그에서

초기에 확률 차트를 사용했기 때문에 -- 2010 차트에도 여전히 적용됩니까 -- 그것들은 실제 거래자입니다. 새싹이고 당신은 그의 과제를 가질 수 있습니다 -- 저는 논밴딩 르베그 적분 수학 프로그래밍에 빠져 있습니다 -- 기억하십시오 영화 She's Out of My League --- 좋은 노동은 좋은 급여를 의미합니다 -----

코드 읽기 -- 2010년 현재 투자 스타일보다 약간 덜 정교함

 
scottyb:
나는 컴파일하려고 하는 저주받은 무시무시한 괄호 오류의 가능한 모든 콤보를 시도했습니다. 몇 시간 동안 그것을 보았지만 그것을 고칠 운이 없었습니다. 스크립트를 엉망으로 만드는 코드 섹션에 못을 박았습니다. 누구든지 무엇이 잘못되었는지 조언해 주세요.

무효 ScanForClosure()

{

int 현금 = OrderProfit() + OrderSwap() + OrderCommission()

int MacdCurrent, MacdPrevious, SignalCurrent;

int SignalPrevious, MaCurrent, MaPrevious;

int total2 = OrdersTotal();

정수 숫자2 = 0;

부울 유형 = 거짓;

정수 trd2 = 0;

MacdCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0);

MacdPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);

SignalCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);

SignalPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);

MaCurrent=iMA(NULL,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,0);

MaPrevious=iMA(NULL,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,1);

ArrayResize(lastOrders,5);

배열초기화(lastOrders,0);

// //

for(int cnt=0; cnt<total2; cnt++)

{

주문 선택(cnt, SELECT_BY_POS);

if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) ;

{

if ((주문유형()==OP_BUY)&&

(MacdCurrent>0)&&

(MacdCurrent<SignalCurrent)&&

(현금 > 0)&&

(MacdPrevious>SignalPrevious) && MacdCurrent>(MACDCCloseLevel*Point));

{

CloseOrder(1);

}

if ((주문유형()==OP_SELL)&&

(현금 > 0)&& (MacdCurrent<0) &&

(MacdCurrent>SignalCurrent)&&

(MacdPrevious<SignalPrevious)&&

(MathAbs(MacdCurrent))>(MACDCCloseLevel*Point));

{

CloseOrder(2);

}

}

}

}

안녕하세요 스코티입니다.

macd 샘플에서 복사 중입니다.

if(주문 유형()==OP_BUY)

{

if(MacdCurrent>0 && 현금 > 0 && MacdCurrentSignalPrevious &&

MacdCurrent>(MACDCCloseLevel*Point))

{

OrderClose(OrderTicket(),OrderLots(), 입찰, 3, 보라색);

반환(0);

}

또 다른

{

if(MacdCurrent 0 && MacdCurrent>SignalCurrent &&

MacdPrevious(MACDCloseLevel*Point))

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,바이올렛); // 닫기 위치

반환(0);

}

문안 인사

도구

 
forextrend:
이 코드가 잘못된 매개변수 카운트 오류를 제공하는 이유는 다음과 같습니다.

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

{

kline = iStochastic(NULL, TimeFrame1, 기간(), 4, 3, 3, MODE_SMA, 1, MODE_MAIN, i);

dline = iStochastic(NULL, TimeFrame1, 기간(), 4, 3, 3, MODE_SMA, 1, MODE_SIGNAL, i);

}

해야한다

int counted_bars = IndicatorCounted();

정수 한계, i;

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

제한 = 막대 - counted_bars;

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

{

kline = iStochastic(NULL,TimeFrame1, 4, 3, 3, MODE_SMA, 1, MODE_MAIN, i);

dline = iStochastic(NULL,TimeFrame1, 4, 3, 3, MODE_SMA, 1, MODE_SIGNAL, i);

문안 인사

도구

 

Mr Tools에게 감사드립니다. 아마도 복잡하게 만들고 있었지만 무엇이 잘못 되었습니까? 게시된 예제가 열려 있는 모든 티켓을 스캔합니까? 나는 그것이 단지 2개(단일 구매 및 단일 판매)를 스캔할 것이라고 생각합니다. 대부분은 매번 같은 것입니다./ 저는 이 mt4 프로그래밍에 매우 익숙하지만 무슨 일이 일어날 것이라고 확신합니다.

 

알아 냈어

10시간 동안 같은 문제를 쳐다보고도 고칠 수 없다는 게 놀랍다. 나는 그것을 다시 보았다. 내가 일어나서 5에서 그것을 고쳤을 때. 이 MT4 코드는 매우 빡빡한 것 같다. 찾고 있는 것을 정확하게 코딩해야 하는 것 같습니다(10개의 다른 언어 및 작업에서 똑같은 작업을 수행할 수 있는지 여부).

저는 World of Warcraft용 봇을 만들어 게임에서 캐릭터가 스스로 뛰어다니며 물건을 찾고 죽이도록 만들었습니다. 하지만 MT4에서 간단한 구매 판매 루틴을 만들려고 할 때 어려움

어쨌든 저를 위한 교훈은 if를 사용하여 줄에 넣는 것을 제한하는 것이었습니다. 내가 겪었던 고통을 다른 몇 명에게 구했으면 좋겠다.

주문 선택(cnt, SELECT_BY_POS);

if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)

{

if (주문유형()==OP_BUY)

만약 (이익>0)

if (MacdCurrent<SignalCurrent)

if (MacdCurrent>0)

if (MacdPrevious>SignalPrevious)

if (MacdCurrent>(MACDCCloseLevel*Point))

{

CloseOrder(1);

}

if (주문 유형()==OP_SELL)

if ((MacdCurrent<0 ) )

만약 (이익 >0 )

if (MacdCurrent>SignalCurrent)

if (MacdPrevious<SignalPrevious)

if (MathAbs(MacdCurrent) >(MACDCloseLevel*Point))

 

코드 지원 - 도형

안녕하세요,

작업 중인 시스템의 일부로 다음을 수행하는 데 필요한 코드에 대한 도움말을 찾고 있습니다.

유효 기간:

(가장 오래된 것부터 가장 최근의 것까지 번호가 매겨짐)

-> Fractal Down 2보다 높은 1을 가리키는 Fractal

-> Fractal Up 1이 형성되고, Break-Long 가능한 조건을 생성하지만,

-> Fractal Down 3는 Fractal Down 2보다 높아야 합니다.

-- 이것은 추세의 변화를 검증합니다. 상위 프랙탈 의 가격 분할은 유효한 TRUE입니다. 새로운 더 낮은 상위 프랙탈이 형성되면 이전 프랙탈 다운보다 더 낮은 프랙탈 다운이 없는 한 새로운 중단점입니다. 더 낮은 프랙탈은 더 높은 최고점을 만들어야 합니다.

짧은 유효성 검사의 경우 true를 반전합니다.

건배

아론

 

조금 더 잘 설명하려고 할 수 있습니다

따라서 가격이 상승하는 경향이 있으며 상부 프랙탈 이 형성됩니다. 가격 회귀 및 하단 프랙탈이 형성됩니다. 가격은 계속 되돌리고 또 다른 더 낮은 하단 프랙탈이 형성됩니다.

그런 다음 가격이 상승하여 새로운 더 낮은 상위 프랙탈을 형성합니다.

가격 되돌림과 또 다른 하단 프랙탈이 형성되지만 이것은 이전 하단 프랙탈보다 높습니다.

가격은 이전 상위 프랙탈, 유효한 휴식 시간 조건을 깨뜨립니다.

추신: 새로운 더 낮은 상부 프랙탈이 형성되었지만 하부 프랙탈이 계속해서 더 높은 최고점을 기록하고 있다면 새로운 중단점은 가장 최근의 상부 프랙탈입니다.

PPS 더 낮은 하단 프랙탈이 형성되기 시작하면 조건이 재설정되고 중단의 짧은 유효성 검사를 위해 위의 조건 또는 역 조건을 계속 찾습니다.

건배

아론

 

그리고 당신이 필요로 하는 프로그래밍에 정확히 어떤 도움이 됩니까? 전체 시스템을 프로그래밍해야 합니까?

 

바로 그 논리 부분.

ValidBuy = FALSE인 bool을 말하십시오.

위와 같은 조건 논리가 발생하면 TRUE로 설정합니다.

나는 그것이 배열 값을 비교하는 배열이라고 확신하지만 배열 코딩에 관해서는 그다지 좋지 않습니다.

건배

아론

 

배열을 사용할 필요가 없습니다. 주어진 프랙탈의 수준을 찾는 function 을 생성하면 다음과 같이 호출할 수 있습니다.

double fractal = FindFractal( 0, MODE_LOWER );[/CODE]

first parameter being number of fractal (0-last, 1-one before last, etc.) and second parameter telling if you want upper or lower fractal.

Then, you can code like this:

[CODE]double last_lower_fractal = FindFractal( 0, MODE_LOWER );

double previous_lower_fractal = FindFractal( 1, MODE_LOWER );

if( last_lower_fractal > previous_lower_fractal )

{

//we have found that most recent lower fractal is higher than its predecessor, do rest of your logic here.

}