영어가 모국어가 아닌 사람들이 당신의 이야기를 이해할 수 있다고 생각합니까? 나는 양과 양치기 존을 이해하지만 그 이야기는 나에게 의미가 없습니다. (나일지도 몰라... 그래서 미안해)
Trading/mql4에 대한 일반적인 정의를 사용하여 '국제 영어'로 문제를 설명할 수 있습니까?
이 문장은 무엇을 의미합니까?
나머지 사람들을 위해 이 글을 쓰지 마십시오.
영어가 모국어가 아닌 사람들이 당신의 이야기를 이해할 수 있다고 생각합니까? 나는 양과 양치기 존을 이해하지만 그 이야기는 나에게 의미가 없습니다. (나일지도 몰라... 그래서 미안해)
Trading/mql4에 대한 일반적인 정의를 사용하여 '국제 영어'로 문제를 설명할 수 있습니까?
이 문장은 무엇을 의미합니까?
ONLY CANDLE - 포지션을 여는 방법? - 다음 주제가 되어야 합니다. 진행자 어떻게 생각하세요? 할 수 있습니까?
선택한 시나리오 를 구현 합니다.
주문을 보내는 방법?
int start() // start program { // We have some function here like "int CalculateCurrentOrders(string symbol)" and "double LotsOptimized()" // many different thing, suddenly! we have our "CheckOpen();" //-------------------------------- void CheckOpen() // void - because function return nothing { // start body int res; // we will use changeable "res" this is "int" value if ( Bid==Close[ 1 ]+ 4 * Point ) // check conditions: Bid or Ask must be 4 Point above a BAR if no - nothing happen if Yes go below { // start body if res= OrderSend ( Symbol (),OP_SELL, 0.02 ,Bid, 0 ,Open[ 1 ]+ 37 * Point , 0 , "" ,MAGICMA, 0 ,Red); // start "res" and "res" is sending message to platform to open position // what position is in "()" allways must be the same sequence symbol , op_*** , lot size , ...) return ; // if "res" do it then retunrn too ... y ... "if". Because "if" is done return too CheckOpen(). Because "CheckOpen()" is done stop and end. } // stop body if } // stop body function "void CheckOpen()" //--------------------------------
주문이 하나 있습니다
그러나 하나의 기능 에서 두 개의 위치를 열려면 어떻게 해야 합니까?
이 시나리오에는 CheckForOpenS1() 시나리오가 있습니다. 물론 가격이 올바른 위치에 있으면 두 번 구매합니다.
//-------------------------------- void CheckOpen1() // define first function { int res; if ( Bid==Close[ 1 ]+ 4 * Point ) { res= OrderSend ( Symbol (),OP_SELL, 0.02 ,Bid, 0 , 0 , 0 , "" ,MAGICMA, 0 ,Red); return ; } } void CheckOpen2() // define second function { int res; if ( Bid==Close[ 1 ]+ 8 * Point ) // change 8 Point ( 4 ==> 8 ) { res= OrderSend ( Symbol (),OP_SELL, 0.02 ,Bid, 0 , 0 , 0 , "" ,MAGICMA, 0 ,Red); return ; } } // I DONT KNOW.............. //-------------------------------- / our scenario void CheckForOpenS1()= true ; void CheckOpen1() void CheckOpen2() //-------------------------------- / OR LIKE THESE int res; if ( CheckForOpenS1() == true ) { res= CheckOpen1() CheckOpen2(); }
ONLY CANDLE - 포지션을 여는 방법? - 다음 주제가 되어야 합니다. 사회자 어떻게 생각하세요? 할 수 있습니까?
선택한 시나리오 를 구현 합니다.
주문을 보내는 방법?
주문이 하나 있습니다
그러나 하나의 기능에서 두 개의 위치를 열려면 어떻게 해야 합니까?
이 시나리오에는 CheckForOpenS1() 시나리오가 있습니다. 물론 가격이 올바른 위치에 있으면 두 번 구매합니다.
나는 당신이 묻는 것을 정말로 이해하지 못합니다. . . 당신은 자신을 매우 명확하게 만들고 있지 않습니다. . . 아니면 그냥 나일 수도 있습니다.
이 코드는 문제를 일으킬 것입니다. . .
if ( Bid == Close[ 1 ] + 4 * Point )
이 스레드 읽기: 가격이 != 가격이 될 수 있습니까?
그렇지 않으면
여러 이벤트 시나리오 로 간단한 EA 를 작성하는 방법
작은 양초 였습니다 - 열기 기능 1
평균 적인 양초 였습니다 - 기능 2 열기
큰 양초 였습니다 - 열기 기능 3
이 시점에서 switch() 가 적절 하다고 생각합니다.
기능 1 은 1개 위치 를 열고 닫는 지 확인 합니다.
2 는 그들을 보호 하는 2개의 위치를 열고 닫습니다 .
3 개 오픈 2포지션 이지만 가격이 다릅니다 ....
촛불이 있을 때마다, 다른 일 을 하는 또 다른 기능 이 있을 때마다
당신 이 나를 위해 쓸 수 없다는 것을 알고 있지만 어떤 조언이라도....
약속한 대로 다시 살펴보았지만 여전히 이해가 되지 않습니다. 죄송합니다.
이것은 결코 작동하지 않을 것입니다:
double bull() // check first candle -mabey is bull { double A=Open[ 1 ]; // we use double because euro/usd have point example 1.9865 double B=Close[ 1 ]; double C=B-A; return (C); // <-- C is probably never 1,2,3,4,5..... } // when we have bull catalog/ segregate him.. switch (bull()) // <-- the expression here is something like 0.00123. None of your case statements will be executed. { case 1 : break ; // nothing happen case 2 : break ; // nothing happen case 3 : break ; // nothing happen case 4 : CheckForOpenS1(); break ; // start CheckForOpenS1()- take it and go thrue with this.. we will see want is '...S1' case 5 : CheckForOpenS2(); CheckForOpenS3() break ; // start CheckForOpenS2() and S3 .... }
스위치 사용 방법에 대해 여기를 읽어보십시오: https://docs.mql4.com/basis/operators/switch
이것은 전혀 명확하지 않습니다.
void CheckOpen2() // define second function { int res; if ( Bid==Close[ 1 ]+ 8 * Point ) // change 8 Point ( 4 ==> 8 ) { res= OrderSend ( Symbol (),OP_SELL, 0.02 ,Bid, 0 , 0 , 0 , "" ,MAGICMA, 0 ,Red); return ; } }
동등한 표현은 원하지 않을 수도 있지만, 어떻게 해야 합니까?
<로 읽어야 하는 경우 새 바가 도착하면 즉시 매도 주문을 보냅니다(새 바의 시가가 previos 바의 종가 +8*Point 보다 <일 수 있음).
>로 읽어야 하는 경우 가격이 약간 상승할 때까지 기다렸다가 SELL 주문을 보냅니다. 나는 당신의 전략을 잘 이해하지 못해서 아마도 이렇게 원했을 것입니다.
나는 또한 당신이 의미하는 것을 상상할 수 있습니다 :
if (Bid<Close[ 1 ] - 8 * Point )
1포인트가 1핍인 4자리 브로커와 거래하고 있습니까? 그렇지 않으면 가격은 아마도 당신이 원하는 것이 아닐 수도 있는 0.8핍만 움직여야 합니다(그리고 스프레드는 추가로 혼란을 줄 수 있습니다).
코드를 다시 살펴보고 가능한 한 수정해야 한다고 생각합니다. 구체적인 질문이 있으면 자유롭게 질문하십시오. 코더가 의도한 바를 잘못 이해했기 때문에 전략이 완전히 다른 방식으로 작동할 수 있다는 점에 유의하십시오.
내 전략은
양초 가 4 에서 5 포인트 사이 에서 BULL 로 나타나면 양초 이후 ( 어떤 조건 에서도 ) 2 개의 매수 주문 을 보낼 준비 를 합니다 .
양초 가 6 에서 7 포인트 사이 에서 BULL 로 나타나면 양초 이후 ( 어떤 조건 에서도 ) 3 개의 매수 주문 을 보낼 준비 를 합니다 .
EA 가 작동하지 않는 이유 를 묻 거나 Bid 또는 Ask 에 작은 실수 가 있습니다 . ( 이 오류 를 찾을 수는 없지만 일반적으로 EA 는 내가 작성한 내용 에 대해 매우 잘 작동합니다 . 구매 및 닫기) 내 기술 계획 을 보여줍니다 .
지금 바로 작동합니다.
맨 아래 를 보면 매우 혼잡해지며 때때로 EA Bull4 시나리오 를 대체 하고 시나리오 는 Bull6 Bull4 를 열고 깨달았 습니다. 갑자기 마음 이 바뀌고 Bull6 Bull6 을 완료 합니다 .
단순화 할 수 있습니까 ?
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
#define MAGICMA 20050610
//+------------------------------------------------------------------+
//| Calculate open positions HOW MEANY OF THIS |
//+------------------------------------------------------------------+
int CalculateCurrentOrders( string symbol)
{
int buys= 0 ,sells= 0 ;
//----
for ( int i= 0 ;i< OrdersTotal ();i++)
{
if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== false ) break ;
if (OrderSymbol()== Symbol () && OrderMagicNumber()==MAGICMA)
{
if (OrderType()==OP_BUY) buys++;
}
}
//---- return orders volume
return (buys);
}
//+------------------------------------------------------------------+
//| Calculate candle |
//+------------------------------------------------------------------+
bool BULL4()
{
if (Close[ 1 ]-Open[ 1 ]>= 4 * Point && Close[ 1 ]-Open[ 1 ]<= 5 * Point )
return ( true );
}
bool BULL6()
{
if (Close[ 1 ]-Open[ 1 ]>= 6 * Point && Close[ 1 ]-Open[ 1 ]<= 7 * Point )
return ( true );
}
//+------------------------------------------------------------------+
//| Check for open order conditions |
//+------------------------------------------------------------------+
void CheckForOpenBULL41()
{
int res;
if (Bid==Close[ 1 ]+ 3 * Point )
{
res= OrderSend ( Symbol (),OP_BUY, 0.41 ,Ask, 0 ,Close[ 1 ]- 25 * Point , 0 , "" ,MAGICMA, 0 ,Blue);
return ;
}
}
void CheckForOpenBULL42()
{
int res;
if (Ask>OrderOpenPrice()+ 2 * Point )
{
res= OrderSend ( Symbol (),OP_BUY, 0.42 ,Ask, 0 ,Close[ 1 ]- 25 * Point , 0 , "" ,MAGICMA, 0 ,Blue);
return ;
}
}
void CheckForOpenBULL61()
{
int res;
if (Bid==Close[ 1 ]+4* Point )
{
res= OrderSend ( Symbol (),OP_BUY, 0.61 ,Ask, 0 ,Close[ 1 ]- 25 * Point , 0 , "" ,MAGICMA, 0 ,Red);
return ;
}
}
void CheckForOpenBULL62()
{
int res;
if (Ask>OrderOpenPrice()+ 2 * Point )
{
res= OrderSend ( Symbol (),OP_BUY, 0.62 ,Ask, 0 ,Close[ 1 ]- 25 * Point , 0 , "" ,MAGICMA, 0 ,Red);
return ;
}
}
void CheckForOpenBULL63()
{
int res;
if (Ask>OrderOpenPrice()+ 2 * Point )
{
res= OrderSend ( Symbol (),OP_BUY, 0.63 ,Ask, 0 ,Close[ 1 ]- 25 * Point , 0 , "" ,MAGICMA, 0 ,Red);
return ;
}
}
//+------------------------------------------------------------------+
//| Check for close order conditions |
//+------------------------------------------------------------------+
void CheckForCloseBULL()
{
RefreshRates();
if (OrderOpenPrice()+ 4 * Point < Ask)
for ( int i = OrdersTotal (); i >= 0 ;i--)
{
OrderSelect (i,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol() == Symbol ())
{
bool ticket = true ;
if (OrderType() == OP_BUY) ticket = OrderClose(OrderTicket(),OrderLots(),Bid, 1 ,Black);
}
}
}
//+------------------------------------------------------------------+
//| Start function |
//+------------------------------------------------------------------+
void start()
{
if (BULL4()== true && CalculateCurrentOrders( Symbol ())== 0 ) CheckForOpenBULL41();
else CheckForCloseBULL();
if (CalculateCurrentOrders( Symbol ())== 1 ) CheckForOpenBULL42();
else CheckForCloseBULL();
//---//
if (BULL6()== true && CalculateCurrentOrders( Symbol ())== 0 ) CheckForOpenBULL61();
else CheckForCloseBULL();
if (CalculateCurrentOrders( Symbol ())== 1 ) CheckForOpenBULL62();
else CheckForCloseBULL();
if (CalculateCurrentOrders( Symbol ())== 2 ) CheckForOpenBULL63();
else CheckForCloseBULL();
if (CalculateCurrentOrders( Symbol ())== 3 ) CheckForOpenBULL63();
else CheckForCloseBULL();
if (CalculateCurrentOrders( Symbol ())== 4 ) CheckForCloseBULL();
}
//+------------------------------------------------------------------+
내 전략은
양초 가 4에서 5까지 BYK 로 나타나면 양초 이후 ( 어떤 조건에서도 ) 두 개의 데이터 구매 주문 을 보낼 준비 를 합니다 ( 가격 이 하나 를 구매 하는 데 필요한 수준 에 도달 하면 zkup 2 에 도달 하는 방법 ).
양초 가 6 에서 7 까지 BYK 로 나타나면 양초 후 ( 어떤 조건에서도 ) 3개의 구매 주문 을 보낼 준비 를 합니다 ( 가격 이 하나 를 구매 하는 데 필요한 수준 에 도달 하면 zkup 2 및 3 에 도달 하는 방법 )
EA 가 작동하지 않는 이유 를 묻 거나 Bid 또는 Ask 에 작은 실수 가 있습니다 . ( 이 오류 를 찾을 수는 없지만 일반적으로 EA 는 내가 작성한 내용 에 대해 매우 잘 작동합니다 . 구매 및 닫기) 내 기술 계획 을 보여줍니다 .
맨 아래 를 보면 매우 혼잡해지며 때때로 EA Bull4 시나리오 를 대체 하고 시나리오 는 Bull6 Bull4 를 열고 깨달았 습니다. 갑자기 마음 이 바뀌고 Bull6 Bull6 을 완료 합니다 .
단순화 할 수 있습니까 ?
BYK ??
이것은 잘못된 것입니다. . .
for ( int i = OrdersTotal (); i >= 0 ;i--)
. . . 위치는 0에서 시작하므로 OrdersTotal() - 1부터 카운트다운해야 합니다.
당신 은 이것을 한다 . . . .
void CheckForCloseBull() // close ALL AT ONCE buy of course { RefreshRates(); if ( OrderOpenPrice() > Ask+ 6 * Point )
. . . OrderOpenPrice() 를 얻었지만 어떤 주문에 대해? 여러 주문이 열려 있습니다. . .
변수 res 를 사용하여 OrderSend() 호출에서 반환 값을 보유합니다. . . 그리고 당신은 그것으로 무엇을합니까? 아무것도, 왜?
아주 좋은 대답 Raptor UK
1. 해상도 문제
저는 EA 이동 평균 분해능 을 연구하고 있습니다 . 3번만 있습니다 . 모두 시간 의 함수 로 존재하지 않기 때문입니다 .
처음으로 "hello we will use res" 정보 에 사용 됩니다.
두 번째 로 주문 을 보냅니다 . OrderSend 는 res = 343321 인 주문 수 를 반환하며 ' void CheckForOpen ( ) "res 가 존재하지 않습니다.
하지만...
나는 "void CheckForOpen ()" 이 이 명령 의 진실을 관찰 하면 " void CheckForOpen ()" 을 제외하고 어떻게든 그 번호 를 가져오는 OrderSelect 명령을 시도 할 것이라고 생각 한다 .
2. OrderOpenPrice() 문제
당신은 절대적으로 옳습니다. 그러나 이 구문 은 놀라울 정도로 잘 작동합니다 .
3. OrdersTotal() - 1 당신이 절대적으로 옳습니다.
4. BYK(폴란드)= BULL 번역기에 문제가 있습니다.
아직 내 EA 를 이해 하지 못하는 사람들 을 위해 이야기 를 작성 하십시오 : D 헤헤
우리 가 수행하는 모든 단계 는 기능 입니다. 내가 지금 쓰고 있는 컴퓨터 는 하나 의 기능이다. 나는 TV 쇼 를 두 번째 기능 등 으로 본다.
이제 주방 으로 이동 ...
우리는 요리책 을 가지고 목차 를 열고 요점 을 순차적으로 읽습니다 .
먼저 돼지갈비 만드는 법 - 볼 에 고기 를 담고 소금 , 후추 , 감자 껍질을 벗기고
왼쪽 에는 이벤트 - 오른쪽 기능 및 몇 가지 테마 - 쉬운 경우가 아니면 없습니다 !
돼지 갈비 만드는 법을 읽은 후 할 일 을 시작 합니다 . 스테이크 는 25분을 먹고 끝 이 나기 시작 했습니다 .
5분이 지났습니다 M5 (5분 후) 우리 는 요리책 의 다음 포인트를 읽기 시작합니다 .
두 번째 샐러드 만드는 법 - 당근 껍질 벗기기 , 양파 껍질 벗기기 등 잡다한 것들
그리고 여기 에서 마법이 일어납니다 . 왜냐하면 그것이 double , 메이플 (2인칭) 을 생성했기 때문 입니다. 우리 는 돼지 갈비 와 샐러드 에서 동시에 이것을 합니다 . 우리는 부엌에서 두 사람이 한 사람 이 되기 시작합니다 .
더 많은 포인트 를 읽을 수록 주방에 더 많은 사람들 이 나타납니다. 주방에 있는 사람들 은 일을 마치고 설거지를 마치고 사라집니다 .
이벤트 는 양초입니다 - 매수 및 매도 또는 마감 을 위한 다양한 옵션이 있습니다 .
ONLY CANDLE - 어떻게 Candle을 분류하거나 분류합니까?
저를 수정해주세요!
우리는 강세와 약세 촛불이 있습니다 나는 이것을 분리하고 싶습니다
그것은 양치기 와 같습니다. 목자 에게는 농장과 농작물이 있고 양이 있습니다.
양털 깎을 때가 되면 목동이 치는 존 씨는 농장에 가서 양을 잡고 ...
처음 잡은 양은 너무 작아서 면도할 수 없습니다. John은 놓아주었습니다.
다음 양이 좋다 존은 가위 를 들고 양은 알몸이다
다음 양은 좋고 큰 양털이 있습니다 - John은 BIG 가위 를 사용하고 양은 알몸입니다.
다음 양은 양자리입니다 - John은 칼을 들고 양자리는 현재 내시입니다.
양초/바도 똑같이 하고 싶어요
우리의 촛불이 간다 Bar[0].... 우리는 기다리고 있다..... 그녀가 간다, 우리는 기다리고 있다.... 15분(M15) 그리고 있다! ... 뭐야? 확인하다!
Bullisch Candle과 Candle(price open [1]- price close [1])이 2포인트 너무 작은 경우 - let go , 우리는 아무것도 하지 않습니다
Bullisch Candle과 Candle(시가 시가 [1]- 시가 종가 [1])이 4포인트인 경우 프로그램을 시작하십시오.
CheckForOpenS1(); 가격이 양초보다 4포인트 높으면 구매 기능 을 시작합니다(시나리오 1).
Bullisch Candle과 Candle(시가 시가 [1]- 시가 종가 [1])이 있는 경우 5포인트가 있습니다. -이것은 매우 큰 양초입니다. 그런 다음 프로그램을 시작하십시오.
CheckForOpenS2(); 가격이 캔들보다 14포인트 높으면 구매 기능 시작(시나리오2)
나는 이 마녀에게 모든 촛불을 원합니다. 나는 프로그램을 시작하고 싶습니다. 큰 촛불이 있으면 구매하고, 너무 작은 촛불이 있으면 다음을 기다릴 것입니다.
그래서 ... 이것은 정확하지만 아이디어가 있습니다 :)
필요 없는 것은 쓰지 마시기 바랍니다.