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

 

지표에서 데이터 유형 복구

안녕

지표(3 MA 교차 w 경고)에서 데이터 유형을 복구하여 EA에 넣을 수 있습니까?

이것이 내가 하고 싶은 일입니다.

표시기(3 MA 교차 w 경고)에서 데이터 유형을 입력합니다.

이중 execute_trade = "ok_buy" 또는 execute_trade = "ok_sell" 여기:

************표시기 ************

if ((빠른MAnow > 느린MAnow &&

더 빠른MA이전 <= 더 느린MA이전 &&

fastMAafter > slowMAafter &&

중간MAnow > 더 느린MAnow )

||

(빠른MAnow > 느린MAnow &&

중형MAnow > 더 느림MAnow &&

중간MA이전 <= 더 느림MA이전 &&

mediumMAafter > 느린MAafter ))

{

CrossUp = 낮음 - 범위*0.5;

문자열 execute_trade = "ok_buy";

}

if ((fasterMAnow < slowMAnow &&

더 빠른MA이전 >= 더 느린MA이전 &&

fastMAafter < slowMAafter &&

중간MAnow < 더 느림MAnow )

||

(fasterMAnow < slowMAnow &&

미디엄MAnow < 더 느림MAnow &&

mediumMA이전 >= 더 느림MA이전 &&

mediumMAafter < 느린MAafter ))

{

CrossDown = 높음 + 범위*0.5;

execute_trade = "ok_sell";

}

************************

다음과 같이 내 EA에서 "excute_trade"를 복구하고 싶습니다.

***********EA******************

if (excute_trade== "ok_buy")

주문 = SIGNAL_BUY;

if (excute_trade== "ok_sell")

주문 = SIGNAL_SELL;

****************************

하지만 어떻게 해야할지 모르겠어

도와주세요

친애하는

파일:
 
Julia:
누군가 이렇게 친절하고 다음 코드를 코딩하는 방법을 알려줄 수 있습니까?:

내 Ea가 M30 차트에서 켜져 있으면 코드에서 다음과 같이 말하고 싶습니다.

if(M5 시간대에서 오늘 종가는>어제 종가)

{

.......

}

오늘 종가는 현재 입찰가입니다. 어제 종가는 시간대와 무관하므로 M30 또는 M5 시간대는 중요하지 않습니다.

if(Bid > iClose(NULL,PERIOD_D1,1))

{

...

}

 
natsirte:
안녕

지표(3 MA 교차 w 경고)에서 데이터 유형을 복구하여 EA에 넣을 수 있습니까?

이것이 내가 하고 싶은 일입니다.

표시기(3 MA 교차 w 경고)에서 데이터 유형을 입력합니다.

이중 execute_trade = "ok_buy" 또는 execute_trade = "ok_sell" 여기:

************표시기 ************

if ((빠른MAnow > 느린MAnow &&

더 빠른MA이전 <= 더 느린MA이전 &&

fastMAafter > slowMAafter &&

중간MAnow > 더 느린MAnow )

||

(빠른MAnow > 느린MAnow &&

mediumMAnow > 더 느린MAnow &&

중간MA이전 <= 더 느림MA이전 &&

mediumMAafter > 느린MAafter ))

{

CrossUp = 낮음 - 범위*0.5;

문자열 execute_trade = "ok_buy";

}

if ((fasterMAnow < slowMAnow &&

더 빠른MA이전 >= 더 느린MA이전 &&

fastMAafter < slowMAafter &&

중간MAnow < 더 느림MAnow )

||

(fasterMAnow < slowMAnow &&

중간MAnow < 더 느림MAnow &&

mediumMA이전 >= 더 느림MA이전 &&

mediumMAafter < 느린MAafter ))

{

CrossDown = 높음 + 범위*0.5;

execute_trade = "ok_sell";

}

************************

다음과 같이 내 EA에서 "excute_trade"를 복구하고 싶습니다.

***********EA******************

if (excute_trade== "ok_buy")

주문 = SIGNAL_BUY;

if (excute_trade== "ok_sell")

주문 = SIGNAL_SELL;

****************************

하지만 어떻게 해야할지 모르겠어

도와주세요

친애하는

버퍼 값(예: 화살표)을 검색 하려면 iCustom 함수를 사용해야 합니다.

이중 iCustom(문자열 기호, int timeframe, 문자열 이름, ..., int 모드, int shift)

지정된 사용자 지정 표시기를 계산하고 해당 값을 반환합니다. 사용자 지정 표시기는 컴파일되어야 하며(*.EX4 파일) terminal_directory\experts\indicators 디렉토리에 있어야 합니다.

매개변수:

기호 - 지표를 계산하는 데 사용해야 하는 데이터의 기호입니다. NULL은 현재 기호를 의미합니다.

기간 - 기간. Timeframe 열거형 값 중 하나일 수 있습니다. 0은 현재 차트 기간을 의미합니다.

name - 사용자 지정 표시기 컴파일된 프로그램 이름입니다.

... - 매개변수 설정(필요한 경우). 전달된 매개변수 및 해당 순서는 선언 순서 및 사용자 지정 표시기의 extern 변수 유형과 일치해야 합니다.

모드 - 라인 인덱스. 0에서 7 사이일 수 있으며 SetIndexBuffer 함수 중 하나에서 사용하는 인덱스와 일치해야 합니다.

shift - 표시기 버퍼에서 가져온 값의 인덱스(주어진 기간 전에 현재 막대에 상대적인 이동).

견본:

이중 val=iCustom(NULL, 0, "SampleInd",13,1,0);

귀하의 경우 구문은 다음과 같아야합니다.

if(iCustom(NULL, 0, "3 MA Cross w_Alert v2", p1, , , , p10, 0, 0) > 0) // Buy

{

...

}

if(iCustom(NULL, 0, "3 MA Cross w_Alert v2", p1, , , , p10, 1, 0) > 0) // Sell

{

...

}

매개변수 p1 ~ p10은 외부 매개변수로 표시기에 보낼 값입니다. 예를 들어, p1은 FasterMA에, p2는 FasterShift에, 그리고 마지막 extern 선언 p10 SoundAlert까지 계속되는 값을 의미합니다. 순서와 의미를 알아보려면 표시기의 코드를 참조하십시오.

 

고마워요 미셸.

그러나 코드가 표시기 코드에 있으면 어떻게 될까요?

그것은:

if(닫기[pos]>iHigh(Symbol(),PERIOD_M5,[pos+1])?????

 
Beno:
Gidday 나는 나의 ea가 (그리고 그 과정에서 많은 것을 배우고 있다면) 오류를 천천히 수정하고 있지만 이것이 의미하는 바는 무엇입니까?

2007.10.24 21:22:24 1998.11.20 06:00 The Abyss GBPJPY,Daily: OrderSend 함수에 대한 매개변수 6으로 잘못된 이중 숫자

나는 그 오류에 대해 아무것도 찾을 수 없습니다. 무엇을 봐야합니까?

int OrderSend(문자열 기호, int cmd, 이중 볼륨, 이중 가격, int 미끄러짐, 이중 손절매, 이중 이익 실현, 문자열 comment=NULL, int magic=0, datetime 만료=0, color arrow_color=CLR_NONE)

보시다시피 매개변수 6은 정지 손실입니다. 손절매가 int로 정의되어 있는지 확인하십시오. 다음으로, OrderSend() 명령에서 정지 손실을 포인트로 곱하고 있는지 확인하십시오. 이것은 거래하는 통화에 대한 올바른 이중으로 변환됩니다.

긴 예:

ticketa=OrderSend(Symbol(),OP_BUY,lotsize,Ask,slip,Ask-intStopLoss*Point,Ask+intTakeProfit*Point,"코멘트",magic,0,Green);

짧은 예:

ticketb=OrderSend(Symbol(),OP_SELL,lotsize,Bid,slip,Bid+intStopLoss*Point,Bid-intTakeProfit*Point,"코멘트",magic,0,Blue);

도움이 되었기를 바랍니다.

 

고마워 울프

그것은 많은 도움이되었지만 새로운 문제를 열었습니다. 그것은 지금 사지만 올바른 장소에 잘 팔리지 않습니다. 나는 3개의 인디가 모두 파란색인 것을 사서 모두 빨간색일 때 팔려고 노력했습니다.

ea에 대해 "Abyss"라는 이름을 잘 선택한 것 같아요. 그곳이 내가 탈출구를 코딩하려고 앉아 있는 곳이기 때문입니다. ㅋㅋㅋ

2007.11.24 10:14:44 2007.11.23 12:00 The Abyss EURUSD,H4: SELL 주문 열기 오류 : 0

무효 CheckForSignals() {

이중 TML=iCustom(NULL,0,"TrendManager",TM_Period,TM_Shift,0,shift);

이중 TMS=iCustom(NULL,0,"TrendManager",TM_Period,TM_Shift,1,shift);

더블 hasOpenLong=iCustom(NULL,0,"Heiken_Ashi_Smoothed",MaMetod,MaPeriod,MaPeriod2,1,shift) ;

더블 hasCloseLong=iCustom(NULL,0,"Heiken_Ashi_Smoothed",MaMetod,MaPeriod,MaPeriod2,3,shift) ;

더블 hasOpenShort=iCustom(NULL,0,"Heiken_Ashi_Smoothed",MaMetod,MaPeriod,MaPeriod2,0,shift) ;

더블 hasCloseShort=iCustom(NULL,0,"Heiken_Ashi_Smoothed",MaMetod,MaPeriod,MaPeriod2,2,shift) ;

double SDLL=iCustom(NULL,0,"경사방향선",기간,방법,가격,0,시프트);

double SDLS=iCustom(NULL,0,"경사 방향선", period, method, price,1,shift);

Buysig=거짓;

Sellsig=거짓;

닫기 구매=거짓;

closesell=거짓;

부울 Long1 = TML;

부울 Short1 = TMS;

부울 Long2 = SDLL;

부울 Short2 = SDLS;

bool Long3 = hasOpenLong > hasCloseLong;

부울 Short3 = hasOpenShort < hasCloseShort;

Buysig = Long1 && Long2 && Long3;

Sellsig = Short1 && Short2 && Short3;

닫기 구매 = 판매 신호;

닫기 판매 = 구매;

}

무효 CheckForOpen() {

if (last==Time[0]) 반환;

int res,ord;

이중 진입, 정지;

ord=CalculateCurrentOrders();

if (ord!=0) CheckForClose();

//---- 구매 조건

if (구매< 구매) {

res=OpenAtMarket(OP_BUY,Lots);

if (res<0) Print("구매 주문 열기 오류: ",(GetLastError()));

그렇지 않으면 마지막=시간[0];

}

//---- 판매 조건

if (판매< 판매시그) {

res=OpenAtMarket(OP_SELL,Lots);

if (res<=0) Print("판매 주문 열기 오류: ",(GetLastError()));

그렇지 않으면 마지막=시간[0];

}

}

int OpenAtMarket(int 모드, 이중 로트) {

int tr, col;

이중 공개 가격;

tr=0; 동안 (tr<5 && !IsTradeAllowed()) { tr++; 수면(2000); }

새로 고침 비율();

if (모드==OP_SELL) {

openprice=입찰가;

col=빨간색;

} 또 다른 {

//openprice=nd(문의);

openprice=묻다;

col=파란색;

}

OrderSend(Symbol(),mode,lot,openprice,slippage,sl,tp,EAName+Magic,Magic,0,col);

}

반품;

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

//| 마감 주문 조건 확인 |

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

무효 CheckForClose() {

정수 합계;

//----

총계=주문총계();

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

{

if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) 계속;

if(OrderMagicNumber()!=매직 || OrderSymbol()!=Symbol()) 계속;

//---- 주문 유형 확인

if(OrderType()==OP_BUY && closebuy) CloseAtMarket(OrderTicket(),OrderLots());

if(OrderType()==OP_SELL && closesell) CloseAtMarket(OrderTicket(),OrderLots());

}

}

bool CloseAtMarket(int 티켓, 이중 추첨) {

부울 브레스=거짓; 정수 tr;

tr=0; 동안 (tr<5 && !IsTradeAllowed()) { tr++; 수면(2000); }

새로 고침 비율();

bres=OrderClose(티켓,랏,OrderClosePrice(),슬립페이지,화이트);

if (!bres) Print("오더 닫기 오류: ",(GetLastError()));

}

 
Julia:
고마워요 미셸.

그러나 코드가 표시기 코드에 있으면 어떻게 될까요?

그것은:

if(닫기[pos]>iHigh(Symbol(),PERIOD_M5,[pos+1])?????

예, 그럴 수 있습니다. 모두 당신이 무엇을 하려는지에 달려 있습니다 ...

 

Plz를 도와주세요 - 이것들을 Mq4로 변환하세요 - 많이 감사합니다

여러분 모두에게:

시스템을 구축 중입니다. 매우 좋다고 생각합니다. 이전에 3개월 동안 아이디어를 테스트했습니다. 이제 포럼에서 최대한 빨리 테스트할 수 있도록 지표를 코딩하려고 합니다. 내가 생각하는 돈:

Plz는 지금이 라인을 mql4 코딩으로 변환하는 데 도움을줍니다.

1- 변수 X가 있습니다. 이 값은 값을 가지며 지금 계산 중입니다.

그래서 우리는 X를 정수로 가지고 있습니다.

2- 표시기는 현재 GMT 시간을 확인 해야 합니다. GMT 오전 6시여야 합니다. - 시간 프레임 1 H

-- GMT TIME 6:00am 확인, 이 양초가 닫힐 때 이 양초의 다음 변수를 계산해야 합니다.

높음 - 낮음 = A

A / 2 = B

B - 높음 = C = SL

D = X * 30%

Buy_Entry= D + C

매수_타겟= C + (X * 60%)

Sell_Entry= C - D

판매 _대상= C - (X * 60%)

그 다음에:

매수 및 매도 및 SL 항목에 따라 매수에 대해 GreaN 영역 및 Short에 대해 빨간색 영역을 사용하여 차트에 결과를 선으로 그리고 싶습니다.

이것은 GMT 6:00 촛불이 끝나자 마자 자동으로 나타나야 하며, 시간 프레임 1H, 따라서 계산은 오전 6:00 ~ 6:59 GMT 촛불에 따라 이루어져야 합니다.

PLZ 이것을 MQL4로 변환하여 테스트하고 다시 돌아와서 결과를 게시할 수 있습니다.

정말 감사합니다

 
Beno:
고마워 울프

그것은 많은 도움이되었지만 새로운 문제를 열었습니다. 그것은 지금 사지만 올바른 장소에 잘 팔리지 않습니다. 나는 3개의 인디가 모두 파란색인 것을 사서 모두 빨간색일 때 팔려고 노력했습니다.

ea에 대해 "Abyss"라는 이름을 적절하게 선택했다고 생각합니다. 그곳이 내가 탈출구를 코딩하려고 앉아 있는 곳이기 때문입니다. ㅋㅋㅋ

베노, 이건 잘 모르겠어. 나는 일반적으로 EA에서 색상 변경 표시기를 사용하는 데 좋은 경험을 하지 못했습니다. 지표가 연결된 데이터 창을 열고 각 색상에 대해 어떤 숫자 값이 반환되는지 확인하십시오. 이는 코딩에 도움이 될 수 있으며 적시에 올바른 표시기 버퍼를 호출하고 있는지 확인하십시오. (나는 당신이 이미 그렇게 했다고 확신합니다) 당신이 정말로 도움이 필요하다면 전체 EA를 게시한다면 당신이 도움을 받는 더 운이 좋을 수도 있습니다. 또한 개인적으로 2개의 개별 Ordersend() 함수 , 하나는 short 전용이고 다른 하나는 long 전용으로 코딩합니다. 그것은 단지 내 의견일 뿐입니다.

행운을 빕니다. 우리 모두는 "Abyss"의 고유한 버전을 가지고 있습니다!

 

건배 울프

나는 무슨 일이 일어나는지 보기 위해 2 Ordersend 옵션을 시도할 것입니다. 일단 이 글을 올리겠습니다.