확산에 대해 안내해주세요 - 페이지 3

 
EA starts 
---> Does nothing till there is 0 or 1 order 
----> Makes a 'call open sound' when 2nd order gets triggered 
----> Closes both orders at X amount of pure profit [after considering spread] and makes a 'call close sound' ]

of course, call open and call close sound files can be any small wave files.. easily available on mt4 itself. .. 
I think these things can be achieved in the above EA that I had posted by changing a few things !
와우 .. 원하는 것은 기본적으로 코딩하기가 매우 쉽습니다.
 
deysmacro :
와우 .. 원하는 것은 기본적으로 코딩하기가 매우 쉽습니다.


저를 안내해 주시겠습니까? 나는 이미 웹에서 이것을 가지고있다

 //+------------------------------------------------------------------+
//|                    CloseTrades_After_Account_Profit_Reached.mq4  |
//|                                     Copyright © 2007, Tradinator |
//|                                          tradinator.fx@gmail.com |
//+------------------------------------------------------------------+

#property copyright "Copyright © 2007, Tradinator"
#property link        "tradinator.fx@gmail.com"


                                       
extern double My_Money_Profit_Target= 100 ;     //The amount of money profit at which you want to close ALL open trades.
extern string Profit_Target= "Enter above To Close all OPEN trades when amount of profit is Reached in Account and not per OPEN trade! " ;
                                          
int Slippage= 5 ;
int i;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//---- 
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//---- 
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+


int start()
{
if ( AccountProfit ()>= My_Money_Profit_Target)
   {
     for (i= OrdersTotal ()- 1 ;i>= 0 ;i--)
       {
       OrderSelect (i, SELECT_BY_POS );
       int type   = OrderType ();
               
       bool result = false ;
              
       switch (type)
          {
           //Close opened long positions
           case OP_BUY   : result = OrderClose ( OrderTicket (), OrderLots (), MarketInfo ( OrderSymbol (), MODE_BID ),Slippage,Pink);
                         break ;
               
           //Close opened short positions
           case OP_SELL : result = OrderClose ( OrderTicket (), OrderLots (), MarketInfo ( OrderSymbol (), MODE_ASK ),Slippage,Pink);
                          
          }
          
       if (result == false )
          {
             Sleep ( 0 );
          }  
       }
       Print ( "Account Profit Reached. All Open Trades Have Been Closed" );
       return ( 0 );
   }  
   
   Comment ( "Balance: " , AccountBalance (), ", Account Equity: " , AccountEquity (), ", Account Profit: " , AccountProfit (),
           "\nMy Account Profit Target: " ,My_Money_Profit_Target);
   
   return ( 0 );
}

이제 나는 코더가 아님을 분명히 밝혔지만 " int start()" 아래에 EXECUTED [비 보류] 주문 수를 계산한 다음 2인 경우에만 다음 코드로 넘어가는 줄이 필요하다고 생각합니다. 나머지 코드를 실행합니다.. if ( AccountProfit ()>= My_Money_Profit_Target).. 등

오른쪽? MQL에서 이러한 라인을 어떻게 말합니까?

 int start()
{
 {
   if (Ordertotal()<= 1 )  ------>   See , something here which says only execute lower code if total executed orders are two else dont go to lower code.. I know that syntax is totally busted, trying to push the concept                                                                                                             
                                   as a weak non coder mind ;( .. so till total open orders are less than or equal to 1 means not 2 , the code below that line wont come into play !         

       if ( AccountProfit ()>= My_Money_Profit_Target)
   {
     for (i= OrdersTotal ()- 1 ;i>= 0 ;i--)
       {
       OrderSelect (i, SELECT_BY_POS );
 
thrdel :

,

모든 것이 실패하고 당신이 그렇게 말하면 그렇게해서는 안됩니다. 그러나 당신이 대답하는 데 실제로 많은 도움이되지 않기 때문에 .....

당신은 코드가 까다로운 고객에게 판매하기 위한 상업용 EA가 아니라는 것을 이해하고 있습니다. 맞습니다. 우리는 무언가를 해결하려고 노력하고 있으며 당신이 돕고 싶지 않다면 최소한 그대로 두는 것이 좋습니다.

내가 기간을 여러 번 변경하면 정말 생각합니다 ..... 무엇? 미끄러짐은 3000000이 될까요? 분명히 내 MT4에는 없습니다. 그리고 내 말을 못 믿겠다면 직접 테스트를 해보세요.

내 테스트에 따르면 시간 프레임을 변경할 때 EA는 초기화/초기화 주기를 통해 이동하고 언급된 코드가 OnInit에 있으므로 Slippage는 매번 30포인트에서 옳습니다.

누구나 알 수 있듯이, 시간 프레임을 변경해도 Slippage가 100만 개로 늘어나지 않을 것입니다.

그리고 아니요, 가짜 사진이 아니라 실제입니다. 시간대별로 변경되는 시간을 확인할 수 있습니다.

도움이 되기를 바랍니다.


이건 실패.....

많은 거래의 경우 prc가 올바른 가격이 아닙니다.

그것에 대해 무슨 말을 해야 합니까...

OnInit() 및 OnDeinit()에 대한 이중 호출 읽기

새 버전에 문제가 있습니다

(이중 OnInit() 문제는 빌드 628에서 수정된 것으로 보이지만 아직 이 버전이 아닙니다.)

 
deVries :

이건 실패.....

많은 거래의 경우 prc가 올바른 가격이 아닙니다.

그것에 대해 무엇을 말해야합니까...

헤헤헤, 이제 너희 둘은 토끼굴 깊숙이 들어가서 새들이 내 머리 위로 날아가게 만드는 것에 대해 토론하고 있다! xD .. 내가 추가한 그 절름발이 코드 줄을 봐 주시겠습니까? =디

 
tatyawinchu :

헤헤헤, 이제 너희 둘은 토끼굴 깊숙이 들어가서 새가 내 머리 위로 날아가게 하는 것에 대해 토론하고 있다! xD .. 내가 추가한 그 절름발이 코드 줄을 봐 주시겠습니까? =디


올바른 Ask 및 Bid는 거래가 다른 경우 chartSymbol의 가격입니다. Symbol 종가가 잘못되었습니다.

       if (result == false )
          {
             Sleep ( 0 );
          }  

이것은 어떤 효과가 있을까요??

실패인가요??? OrderType이 거래 보류 중 ???

아니면 닫기가 실패합니까

이 경우 이유를 알고 있는 마지막 오류 GetLastError()를 가져와야 합니다.

 
tatyawinchu :

EA 시작 ---> 0 또는 1 주문이 있을 때까지 아무 작업도 하지 않음 ----> 2차 주문이 실행될 때 '열림 호출' 소리를 냅니다. ----> 순수한 이익의 X 금액으로 두 주문을 모두 마감 [스프레드 고려 후 ] 및 '통화 종료 소리'를 냅니다.]

물론 호출 열기 및 호출 닫기 사운드 파일은 모든 작은 웨이브 파일이 될 수 있습니다.. mt4 자체에서 쉽게 사용할 수 있습니다. .. 제가 포스팅한 위의 EA에서 몇가지만 바꿔서 구현하면 될 것 같아요! 헤헤 도와주세요 plz = D

안녕 tatyawinchu ,

나는 당신이 EA가 게시한 것이 무엇인지 잘 이해하지 못했다고 생각합니다. 내가 당신을 단계별로 안내하고 당신이 당신의 목적에 사용할 수 있는지 여부를 결정합니다.

계정 기반 손절매는 그것을 사용하고자 하는 모든 사람을 보호하기 위해 존재하며, 귀하의 계정에 10,000이 있고 모든 위험을 감수하고 싶다면 최소한 비상 정지 없이 시장에 나서는 것을 절대 권장하지 않습니다. StopLossLimit을 10 000으로 설정합니다.

네 결정.

이제 코드로 돌아가서 1, 2, 3만큼 쉽습니다.

1. OnTick 함수의 코드를 읽으면(모든 틱마다 실행되는 부분) 가장 먼저 하는 일은 CountMyOrders입니다. 당신이 그것을 볼 수 있기를 바랍니다. 다음으로 myOrders <1이 아직 주문이 없음을 의미하는 경우 계정 자산 을 확인하고 이를 기억합니다.

다른 작업은 수행하지 않습니다. 다음 틱, 여전히 주문이 없으면 대기로 돌아갑니다. EA가 되기에는 꽤 지루하지 않나요?

2. 주문이 들어오면 myOrders<1이 더 이상 참이 아니므로 다음 틱에서 다음 줄로 건너뛰고 시장에 있는 주문에 대한 이익을 계산합니다.

3. 다음으로 모든 주문 이익의 합계를 목표 이익과 비교합니다.

쉽습니다. 이익이 목표에 도달하면 다음 줄에 ExitAll이 표시됩니다. 그리고 주문이 목표에 도달했음을 알리는 경고(소리와 함께)가 화면에 나타납니다!

그렇게 나쁘지 않았어, 그렇지?

그리고 언급하는 것을 잊었습니다. 시장이 당신에게 불리하고 자본 손실이 사전 설정된 수준에 도달하면 남아 있는 자본을 보호하기 위해 시장에서 당신을 데려갈 것입니다.

그리고 그것이 내가 당신에게 줄 수 있는 최고의 도움입니다.

그 이상이 필요한 경우 이보다 더 많은 사용자 정의 코드를 수행하는 사람들을 위한 작업일 것입니다.

도움이 되기를 바랍니다.

건배

 
thrdel :

안녕 tatyawinchu ,

나는 당신이 EA가 게시한 것이 무엇인지 잘 이해하지 못했다고 생각합니다. 내가 당신을 단계별로 안내하고 당신이 당신의 목적에 사용할 수 있는지 여부를 결정합니다.

계정 기반 손절매는 그것을 사용하고자 하는 모든 사람을 보호하기 위해 존재하며, 귀하의 계정에 10,000이 있고 모든 위험을 감수하고 싶다면 최소한 비상 정지 없이 시장에 나서는 것을 절대 권장하지 않습니다. StopLossLimit을 10 000으로 설정합니다.

네 결정.

이제 코드로 돌아가서 1, 2, 3만큼 쉽습니다.

1. OnTick 함수의 코드를 읽으면(모든 틱마다 실행되는 부분) 가장 먼저 하는 일은 CountMyOrders입니다. 당신이 그것을 볼 수 있기를 바랍니다. 다음으로 myOrders <1이면 아직 주문이 없음을 의미하고 계정 자산을 확인하고 기억하고 있습니다.

다른 작업은 수행하지 않습니다. 다음 틱, 여전히 주문이 없으면 대기로 돌아갑니다. EA가 되기에는 꽤 지루하지 않나요?

2. 주문이 들어오면 myOrders<1이 더 이상 참이 아니므로 다음 틱에서 다음 줄로 건너뛰고 시장에 있는 주문에 대한 이익을 계산합니다.

3. 다음으로 모든 주문 이익의 합계를 목표 이익과 비교합니다.

쉽습니다. 이익이 목표에 도달하면 다음 줄에 ExitAll이 표시됩니다. 그리고 주문이 목표에 도달했음을 알리는 경고(소리와 함께)가 화면에 나타납니다!

그렇게 나쁘지 않았어, 그렇지?

그리고 언급하는 것을 잊었습니다. 시장이 당신에게 불리하고 자본 손실이 사전 설정된 수준에 도달하면 남아 있는 자본을 보호하기 위해 시장에서 당신을 데려갈 것입니다.

그리고 그것이 내가 당신에게 줄 수 있는 최선의 도움입니다.

그 이상이 필요한 경우 이보다 더 많은 사용자 정의 코드를 수행하는 사람들을 위한 작업일 것입니다.

도움이 되기를 바랍니다.

건배


흠.. 뿔뿔이 흩어지는듯..

내 정확한 요구 사항은 다음과 같습니다.

Step1 EA 시작합니다.

2단계 EA는 계산의 시작점을 알기 위해 경상 이익을 확인한다.

3단계 EA는 미결 주문이 실행 중인지 확인합니다.

4단계 EA는 실행 중인 주문이 없거나 실행 중인 주문이 하나뿐인 경우 아무 작업도 수행하지 않습니다.

5단계 EA는 SECOND 주문이 트리거될 때 소리를 냅니다. 이 두 번째 주문은 다른 쌍에 있습니다.

6단계 EA는 SPREAD를 고려한 후 X 이익으로 두 주문을 모두 닫고 소리를 냅니다.... 여기에서 BOTH는 모두 열려 있는 주문이어야 합니다. .. 보류 중인 주문을 삭제할 필요가 없습니다.

EA가 필요하지 않은 것 .. SL 또는 TP 설정의 모든 종류..

가급적이면 EA는 2개 이상의 주문에 대해 작업해야 하지만 너무 어려운 경우에는 필요하지 않습니다..

[ 논리적으로는 어렵지 않을 것 같지만 매우 쉽습니다. EA가 모든 미결 주문을 닫도록 활성화하기 때문에 1개 이상 .. 2개 이상이면 자동으로 완료됩니다! 그것은 이미 EA에서 다룰 수 있습니다. .. 틀렸다면 저를 수정하십시오!]

 
deysmacro :
와우 .. 원하는 것은 기본적으로 코딩하기가 매우 쉽습니다.

당신은 재미 있어요. 미묘하지만 재미있습니다.
 
thrdel :

당신은 재미 있어요. 미묘하지만 재미있습니다.

IF 루프를 추가한 다음 루프를 시작하는 나머지 코드를 아래에 붙여넣으면 어떻게 될까요?

IF 조건은 OrdersTotal이 => 2가 되도록 확인 해야 스프레드 후 X 이익으로 모든 미결 주문을 마감하도록 제어가 전달됩니다.

특정 경우에 EA에 메모를 하지 않도록 지시하는 방법은 무엇입니까?

내가 다음을 수행한다고 가정

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+


int start() 
{
if (OrdersTotal()=>2)                                     // Can this work? Can a function be directly called like this?
} 
{
 if (AccountProfit()>= My_Money_Profit_Target)
   {
    for(i=OrdersTotal()-1;i>=0;i--)
       {
       OrderSelect(i, SELECT_BY_POS);
       int type   = OrderType();
               
       bool result = false;
              
       switch(type)
Ok, cant seem to get out of this box yet ! hehe need to know forum stuff more ! but, as you can see above, if that " if (OrdersTotal()=>2)" is valid, it would directly solve my problems .. because the rest of
the stuff would be executed only if the total running market orders are 2 ! =D ..  and some forum guru please release this text from this src prison box ! ;)
 
그래도 기억해야 합니다. EA는 진행 중인 거래만 마감합니다. 직접 거래를 시작해야 합니다.