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

 

멋진 여러분, 두 제안 모두 제가 작업한 것보다 더 나을 것입니다.

 

누가 좀 도와주세요....

안녕...

여기 누군가가 이것을 코딩하는 방법을 도와줄 수 있기를 바랍니다. 이것은 martiangle EA이고 내가 하고 싶은 것은 다음과 같습니다.

1 . 두 번째 레이어 포스트가 열리면 첫 번째 레이어의 타겟 포인트를 타겟 포인트 두 번째 레이어로 이동하고 싶습니다. 따라서 타겟 포인트가 두 번째 레이어에 닿으면 두 개의 포스트가 동시에 닫힐 수 있습니다. 세 번째 레이어가 열려 있으면 첫 번째 레이어와 두 번째 레이어 타겟 포인트는 세 번째 목표 포인트 가격으로 이동할 수 있습니다. 그래서 우리는 동시에 닫을 수 있습니다. 네 번째 레이어, 다섯 번째 레이어 및 다른 레이어가 열린 경우에도 마찬가지입니다. 모든 대상 포인트를 현재 레이어 대상 포인트 또는 포스트로 이동하기만 하면 됩니다.

2. 핍 잠금이 필요합니다. 첫 번째 레이어가 열리고 이익이 15핍(TP 32)이면 ea는 sl 가격으로 잠급니다(예: 5핍). 따라서 가격이 10핍으로 반전되면 해당 게시물은 이익 5핍으로 자동으로 닫힐 수 있습니다. 1st layer post only.2nd layer는 이 martiangle EA 때문에 활성화할 필요가 없습니다.

영어가 서툴러서 정말 죄송합니다. 누군가가 이 EA에 코드를 넣는 데 도움을 줄 수 있기를 바랍니다. 감사합니다

martiangle_rsi_.mq4

문안 인사

정말 도움이 필요합니다

파일:
 

댓글 도와주세요

화면에 표시할 댓글을 설정하려고 하지만 운이 좋지 않습니다.

단일 쌍에 대한 핍 수를 얻었지만 여러 쌍에 대한 대조 합계를 표시할 수 없는 것 같습니다.

어떤 도움이라도 좋을 것입니다

이것은 그 코드의 예입니다

//========== 함수 getPipValue

이중 getPipValue(이중 순서, 정수 디렉토리)

{

이중 발;

새로 고침 비율();

if(dir == 1) val=(NormalizeDouble(ord,Digits) -

NormalizeDouble(질문, 숫자));

else val=(NormalizeDouble(Bid,Digits) - NormalizeDouble(ord,Digits));

val = val/Point*co;

반환(발);

}

//== 종료 함수

정수 getSpread()

{

int spread=MarketInfo(Symbol(),MODE_SPREAD);

반환(확산);

}

//========== 함수 getOpenOrders

무효 getOpenOrders()

{

int nsl, nsd;

문자열 mngMagic, trailon;

int totalorders = OrdersTotal();

for(int j=0; j<총주문수;j++)

{

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

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

OrderSymbol() == Symbol()&&(MagicNumber==0 || MagicNumber ==

OrderMagicNumber()))

{

더블 val=getPipValue(OrderOpenPrice(),OrderType());

//int val = OrderProfit()/(OrderLots()*10);

}

if(매직넘버 == 0)

mngMagic = "모든 "+Symbol()+" 거래.";

또 다른

mngMagic = "매직넘버로 거래 = "+MagicNumber;

//RefreshRates();

Comment("잔액: ",AccountBalance(),", 계정 자산: ",AccountEquity(),", 계정 이익: ",AccountProfit(),"주문 개설: ",OrderOpenPrice(),

"\nPip 개수: ", 값,

"\n내 계정 컷오프 한도: ",Open_Loss_To_CloseTrades,

"\n관리 중: ", mngMagic);

건배

 

현재 주문의 핍 값은 다음을 통해 얻을 수 있습니다.

( OrderClosePrice() - OrderOpenPrice() ) / MarketInfo( OrderSymbol(), MODE_POINT )

"bid" 및 "ask"를 사용하려면 주문 기호 와 관련된 것, 즉 MarketInfo( OrderSymbol(), MODE_BID ) 및 MarketInfo( OrderSymbol(), MODE_ASK )도 사용해야 합니다.

 

랄프.론퀴스트

기드데이

내가 사용한 코드에 감사하지만 모든 쌍의 합계가 아닌 한 쌍만 계산합니다.

다양한 시나리오를 시도했지만 여전히 작동하지 않습니다.

나는 5 쌍에서 실행되는 3 개의 위치를 여는 ea가 있습니다. 각 쌍의 핍 수는 볼 수 있지만 집합체는 볼 수 없습니다.

 
Beno:
랄프.론퀴스트

기드데이

내가 사용한 코드에 감사하지만 모든 쌍의 합계가 아닌 한 쌍만 계산합니다.

다양한 시나리오를 시도했지만 여전히 작동하지 않습니다.

나는 5 쌍에서 실행되는 3 개의 위치를 여는 ea가 있습니다. 각 쌍의 핍 수는 볼 수 있지만 집합체는 볼 수 없습니다.

글쎄요, 전역 변수에 익숙하다면 이를 사용하여 각 기호가 참조하는 각 쌍에 대한 핍 정보를 저장할 수 있습니다. 총 핍 값을 참조하는 또 다른 전역 변수를 만들고 이 특정 전역 변수를 호출하고 핍이 증가할 때 업데이트하고 저장합니다. 전역 변수는 MT4의 메모리에 저장되기 때문에 각 ea에서 접근할 수 있습니다.

원한다면 코딩을 도와드릴 수 있습니다.

 

기드데이 샤제이비

나는 전에 코드에서 전역 변수를 보았지만 그것들에 대한 경험이 전혀 없었으므로 예, 이것을 코딩하는 데 당신의 도움을 받아들이고 싶습니다.

 
Beno:
Gidday ShahJB 나는 전에 코드에서 전역 변수를 보았지만 그것들에 대한 경험이 전혀 없었습니다. 그래서 저는 이것을 코딩하는 데 도움을 받고 싶습니다.

나는 방금 다음을 즉시 코딩했습니다. 이 코드를 먼저 추가하지 않으시겠습니까? 실패하면 나에게 npm을 시도하십시오. 잠을 좀 자야겠어.

문자열 val_old_string = "val_old" + Symbol();

정수 val_old = GlobalVariableGet(val_old_string);

if(발 != val_old)

{

int pips_increment_decrement;

int current_total_pips;

문자열 카운터 = "핍 카운터";

이중 pips_counter = GlobalVariableGet(카운터);

if (val>val_old)

{

pips_increment_decrement = val - val_old;

current_total_pips = pips_increment_decrement + pips_counter;

GlobalVariableSet(카운터, current_total_pips);

글로벌변수셋(val_old_string, val);

}

또 다른

{

pips_increment_decrement = val_old - 발;

current_total_pips = pips_counter - pips_increment_decrement;

GlobalVariableSet(카운터, current_total_pips);

글로벌변수셋(val_old_string, val);

}

}

 

왜 이것이 작동하지 않습니까???

여보세요,

저는 프로그래밍에 대한 완전한 초보자입니다. 이 사이트의 게시물과 학습 리소스 덕분에 저는 몇 개의 EA를 구축할 용기를 얻었습니다. 그 중 하나는 Lguerre 를 트리거 중 하나로 사용할 것입니다. 내 EA의 문제는 트리거가 발생했을 때 구매 주문을 열지 않는다는 것입니다. 앞서 언급한 사이트를 사용하여 몇 개의 EA를 구축했으며 롱 및 숏 포지션에 대한 주문을 잘 실행합니다(EA는 RSI를 사용했습니다). 첨부된 EA, 3-28을 살펴보고 제가 뭘 잘못하고 있는지 알려주세요.... 거래가 실행되기 전에 적중할 레벨에 대해 잘못된 형식을 사용하고 있습니까? 라게르에 추가 매개변수가 필요합니까?

나는 이것에 창피한 시간을 보냈고 나는 포기 직전입니다.... 어떤 도움이라도 대단히 감사합니다!!!!!

답을 찾은 것 같습니다... 그런데 왜 내 EA에 Laguerre를 곱해야 합니까????

파일:
3-31.mq4  10 kb
 

포지션을 마감하는 데 문제가 발생했습니다. 도와주세요

해결 방법을 모르는 문제에 봉착했습니다. 내 프로그램에는 몇 개의 미결 주문이 있고 모두 함께 마감되지만 때로는 일부 주문이 채워지지 않은 것 같아서 채워질 때까지 계속 기다리다가 내 프로그램이 잠깁니다. 모든 미결 주문을 마감하는 가장 좋은 방법은 무엇입니까? 도움을 주셔서 감사합니다.

코드는 다음과 같습니다.

int OrdersTotalLong()

{

int order_total = 0;

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

{

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

if (OrderType() == OP_BUY)

order_total++;

}

반환(주문 합계);

}

int MaxLongOrder()

{

정수 순서 = 0;

이중 매수 매수 = 0;

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

{

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

if ((OrderType() == OP_BUY) && (OrderLots() > lotbuyed))

{

lotbuyed = OrderLots();

주문 = 나;

}

}

반품(주문);

}

int CloseLong()

{

while (OrdersTotalLong() > 0) //열린 주문이 없을 때까지(모두 닫기)

{

if (OrderSelect(MaxLongOrder(), SELECT_BY_POS, MODE_TRADES) == false) 계속

OrderClose(OrderTicket(),OrderLots(), 입찰, 3, 녹색);

}

}

반환(0);

}

사유: