[ARCHIVE!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 4. - 페이지 590

 
내가 읽고 내 자신의 고문을 만들 수 있도록 저에게 문학을 알려주세요! 아니면 단순한 필사자에게 주어지지 않습니까? )))
 
rigonich :

1.:))) 수정하지 않는 조건은 없습니다! :))) . 아니요, 하지만 거의 모든 조건을 만들 수 있는 if 문이 있습니다.

2. 주문 을 한 번만 수정하려면 왜 수정해야 합니까? 주문을 열 때 필요한 매개변수를 설정하십시오.

3. 그리고 정거장에 대해 - 결국 거래는 중지뿐만 아니라 쿠데타 조건이 형성되는 경우 더 일찍 마감 될 수 있습니다. 예를 들어 ... 또는 시장 출구.

이 모든 것이 가능합니다. 문제는 과제(당신의 목표)에 있습니다. 거래 전략이 준비되어 있고 그것을 "기계화"하기만 하면 되는 경우, 그것은 한 가지이지만, 어떤 거래 전략으로든 그것을 수행하는 방법을 배우고 싶다면 그것은 또 다른 것입니다. 첫 번째는 기성품 전략이 필요하고 두 번째는 프로그래밍 방법을 배워야 합니다.


1) 이해할 수 있다

2) 방금 확인했는데... Alpari에서는 정차를 할 수 없습니다. 후속 수정을 통해서만 ... 비 거래 데스크 비용

3) 전략이 있다.

 
Beowulf :
내가 시작하고 나만의 고문을 만들 수 있도록 문헌을 알려주십시오! 아니면 단순한 필사자에게 주어지지 않습니까? )))

https://book.mql4.com/en/
 

고맙습니다!
 
lottamer :


:))) 수정하지 말라는 조건은 없습니다! :)))

if ((한 번 아빠+엄마 == 칙칙칙) == TRUE) 로타머

질문: 어떤 조건에서 우리는 지금 칙칙칙칙하게 말하지 않을 것입니까?! :)))

 
Beowulf :
내가 시작 하고 나만의 고문을 만들 수 있도록 문헌을 알려주십시오! 아니면 단순한 필사자에게 주어지지 않습니까? )))
우리는 (단순한 필사자) 그것을 이해하지 못합니다! ;)))
 
lottamer :


1) 이해할 수 있다

2) 방금 확인했는데... Alpari에서는 정차를 할 수 없습니다. 후속 수정을 통해서만 ... 비 거래 데스크 비용

3) 전략이 있다.


그러면 당신이 제안한 것처럼 간단합니다. 수정 후 체크박스를 설정하고 수정 전 상태를 확인합니다.주문이 1개 있는 경우입니다. 여러 개가있는 경우 주문을 직접 고려해야합니다. 방법 - 기사 섹션에 있습니다.
 
TarasBY :
우리는 (단순한 필사자) 그것을 이해하지 못합니다! ;)))



글쎄, 나는 무엇이든 읽을 것이다, 나는 나의 진공을 조금 변형시킬 것이다))))
 

동지들이여, 주문이 롤오버로 다시 열릴 때 중지 및 인수 값에 대한 미끄러짐이 가능합니까? 롤오버 후 개시 가격과 스탑 사이의 차이가 스탑 레벨보다 작을 경우 스탑은 어떻게 설정됩니까?

일반적으로 내 임무는 다음과 같습니다. 오픈마켓 주문이 있는데, 롤오버로 열렸는지 아닌지를 판단하고 만약 그렇다면 닫혀있던 이전 주문의 티켓을 얻어야 합니다. 누군가가 검색 알고리즘을 제안할 수 있습니까? 나는 지금 이것을 하고 있다:

1. 첫 번째 미결제 주문을 선택합니다.
2. 나는 개점 시간을 지켜보고 23:40에서 00:20 사이에 열면이 순서를 계속 확인합니다 (이론적으로는 모든 소방관을 위해 창을 40 분 동안 가져갔습니다. 23:50 ~ 23:59)
3. 나는 그의 표를 기억한다.
4. 댓글에 스왑이라는 단어가 포함되어 있고 통화 쌍이 일치하는 모든 마감된 주문을 확인합니다.
5. 정류장 및 테이크에 대한 데이터를 비교합니다. 일치하는 경우 여기에 원하는 주문 쌍이 있습니다. 일치하지 않으면 1단계로 돌아갑니다.

 

(개인적으로) 답을 찾았지만 역사를 위해 글을 남깁니다! :)))))

----------------------------------

그리고 여기 흥미로운 사실이 있습니다...

스크립트가 있습니다(네트워크에서 가져옴). 미결 주문을 수정합니다.

내 생각은 이랬습니다. 완전히 가져와서 내 조언자에 사용자 정의 함수로 삽입하고 필요할 때 참조하십시오.

문제는 컴파일러에서 "' MB_OK ' - 변수가 정의되지 않았습니다. G:\Program_Files_2\MT4-demo\experts\33.mq4 (153, 37)" - 끝에서 세 번째 줄

스크립트 자체를 컴파일하면 모든 것이 깨끗해집니다!

MV_OK가 뭔지 알아냈는데.. 대본에는 넘어가는데 왜 Expert Advisor에 욕을 하는건지 이해가 안가네요???

 //+------------------------------------------------------------------+
//|                                               Изменить стопы.mq4 |
//|                                                          Мефодий |
//|                                                    ppc-2@mail.ru |
//+------------------------------------------------------------------+
#property copyright "Мефодий"
#property link       "ppc-2@mail.ru"
#include <WinUser32.mqh>

extern    int   StopLoss = 500 ; 
extern    int   TakeProfit = 500 ;

// #property show_confirm
// #property show_inputs

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+

int start()
  {
         bool    result;
         double stop_loss,take_profit,point,bid,ask, lotsize;
         int     cmd, total, error, spread;
         string message;
//----
   total= OrdersTotal ();

//----
   for ( int i= 0 ; i<total; i++)
     {
       if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
        {
         //---- print selected order
         OrderPrint();
         cmd=OrderType();
         point=MarketInfo(OrderSymbol(),MODE_POINT);
         bid= MarketInfo(OrderSymbol(),MODE_BID);
         ask= MarketInfo(OrderSymbol(),MODE_ASK);
         spread=MarketInfo(OrderSymbol(),MODE_SPREAD);     
         //---- buy or sell orders are considered
         if (cmd==OP_BUY || cmd==OP_SELL)
          {
             //---- modify first market order
             while ( true )
             {
                 if (cmd==OP_BUY){
                         string type = "buy" ;
                         if (OrderStopLoss()!= 0 )stop_loss=OrderStopLoss();
                         else stop_loss=OrderOpenPrice()-StopLoss*point;
                         if (OrderTakeProfit()!= 0 )take_profit=OrderTakeProfit();
                         else take_profit=OrderOpenPrice()+TakeProfit*point;
                }
                     
                 else {
                        type = "sell" ;
                         if (OrderStopLoss()!= 0 )stop_loss=OrderStopLoss();
                         else stop_loss=OrderOpenPrice()+StopLoss*point;
                         if (OrderTakeProfit()!= 0 )take_profit=OrderTakeProfit();
                         else take_profit=OrderOpenPrice()-TakeProfit*point;
                }   
                result=OrderModify(OrderTicket(), OrderOpenPrice(), stop_loss, take_profit, 0 , CLR_NONE );
                 if (result!= true ) { error= GetLastError (); Print ( "LastError = " ,error);}
                 else {error= 0 ;}
                 if (error== 135 ) RefreshRates();
                 else break ;
              }
                 if (error== 0 ){
                        message=message+ "Ордер #" +OrderTicket()+ " - " +type+ " - " +DoubleToStr(OrderLots(), 2 )+ " успешно модифицирован.\n" ;
                        }
                         else {
                                 if (error == 130 ){ string error_desc = " - Неправильные стопы" ;} else error_desc = "" ;
                                 if (error != 1 )
                        message=message+ "Ошибка модификации ордера #" +OrderTicket()+ " - " +type+ " - " +DoubleToStr(OrderLots(), 2 )+ ". " +error_desc+ " \n" ;
                        }

               //---- print modified order (it still selected after modify)
              OrderPrint();
               continue ;             
           }
        }
       else { Print ( "Error when order select " , GetLastError ()); break ;}
     }
         int ret= MessageBox (message, NULL , MB_OK );
         //if(ret==IDOK) return(0);
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+