포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 549

 
GSB :

아니요, 추가하지 않습니다. int slippage를 먼저 넣으면 4바이트가 할당되므로 최대 8( int 예비)을 추가하거나 int 대신 long을 사용해야 합니다.


여기서 이상한 순간이 하나 더 있습니다. string 유형의 구조 요소가 있는 경우 string 유형의 이 요소 변수의 문자 수가 7보다 크면 나머지 요소 위에 배치합니까? 결국, 문자열은 항상 문자열 끝에 널 문자 \n 을 가지며, 문자열에 7개 이상의 요소(예: 8개 요소)가 있는 경우 문자열에는 8 + 1바이트가 있습니다. 8 + \n . 그래서?
 
GSB :

129 오류는 가격이 변경될 시간이 있을 때 발생하며 DC가 주문을 채우기 전에 더 큰 미끄러짐을 사용합니다.


이전 포인트 50개를 빼세요. 소수점 뒤의 가격은 소수점 이하 5자리 또는 4(0은 생략된 것처럼 보입니다), 때로는 12 또는 16입니다. 데모에서 테스트 중입니다.
 
Example2 :


아니요, 테스터가 아니라 데모 계정입니다.

나는 이미 당신의 게시물을 발견하고 내 게시물을 삭제했습니다 - 나는 마지막 페이지에서 그것을 썼습니다. 코드가 없으면 특정 항목을 제안하기 어렵습니다.
 
artmedia70 :
나는 이미 당신의 게시물을 발견하고 내 게시물을 삭제했습니다 - 나는 마지막 페이지에서 그것을 썼습니다. 코드가 없으면 특정 항목을 제안하기 어렵습니다.


포럼으로 보내야 합니까 아니면 개인 메시지로 보내야 합니까?
 
Example2 :

포럼으로 보내야 합니까 아니면 개인 메시지로 보내야 합니까?
마음에 들지 않으면 포럼을 버리십시오. 누군가가 고칠 것입니다. 나는 이미 잠들기 위해 기어 다녔습니다-아침 6시 반, 말은 아직 굴러 가지 않았습니다 ...
 
나도 잔다.
파일:
 
     USDCADAsk = MarketInfo("USDCAD",MODE_ASK);            
     USDCADBid = MarketInfo("USDCAD",MODE_BID);

     Comment("USDCADAsk = "+DoubleToStr(USDCADAsk,нужный диджитлс),"\n",
             "USDCADBid = "+DoubleToStr(USDCADBid,нужный диджитлс));
 
hoz :

여기서 이상한 순간이 하나 더 있습니다. string 유형의 구조 요소가 있는 경우 string 유형의 이 요소 변수의 문자 수가 7보다 크면 나머지 요소 위에 배치합니까? 결국, 문자열은 항상 문자열 끝에 널 문자 \n 을 가지며, 문자열에 7개 이상의 요소(예: 8개 요소)가 있는 경우 문자열에는 8 + 1바이트가 있습니다. 8 + \n . 그래서?

구조에 string 유형의 변수 및/또는 동적 배열 객체가 포함된 경우 컴파일러는 이러한 구조에 대해 암시적 생성자를 할당합니다. 여기서 string 유형 구조 의 모든 구성원은 0으로 설정되고 올바른 초기화가 수행됩니다. 동적 배열 객체

 
Example2 :

나도 잔다.

첨부 파일:
Kuklovod_USD_1.1.mq4


당신은 그런 코드를 작성할 수 없습니다 :)

다음 댓글("USDCADAsk = ",USDCADAsk); 뒤에 USDCADAsk = DoubleToString(MarketInfo("USDCAD",MODE_ASK),usdcaddigits); USDCADAsk는 double로 선언되고 문자열을 삽입합니다.

그리고 다시 Digits .... ^) 그래서 포인트

그러한 실수를 스스로 찾으십시오. 아무도 당신을 위해 수정하지 않고 거래하지 않을 것입니다! 컴파일러는 28개의 오류를 생성하고 데모를 넣어도 거래하고 있습니다. 그것이 현실이 아니라는 것을 유감스럽게 생각하는 것만 남아 있습니다. 여기서 시장이 당신을 수정했을 것입니다!

 if (USDCHF){ while ( IsTradeContextBusy ()){ Sleep ( 10 );}
                     RefreshRates ();
                    Result[ 1 ] = OrderSend ( "USDCHF" , OP_BUY ,Lot,USDCHFAsk,slip,USDCHFAsk- NormalizeDouble (sl* Point , Digits ),USDCHFAsk+ NormalizeDouble (tp* Point , Digits ), "USDCHF" ,magic[ 0 ], 0 ,Red);
                     if (Result[ 1 ] < 0 ){ Alert ( "Функция OpenOrders " , "\n" , "Валютная пара " + "USDCHF" , "\n" ,
                     "Команда: открыть ордер Sell" , "\n" , "Ответ сервера: " ,errors(GetLastError()) );}}
         if (USDJPY){ while ( IsTradeContextBusy ()){ Sleep ( 10 );}
                     RefreshRates ();
                    Result[ 2 ] = OrderSend ( "USDJPY" , OP_BUY ,Lot,USDJPYAsk,slip,USDJPYAsk- NormalizeDouble (sl* Point , Digits ),USDJPYAsk+ NormalizeDouble (tp* Point , Digits ), "USDJPY" ,magic[ 0 ], 0 ,Red);
                     if (Result[ 2 ] < 0 ){ Alert ( "Функция OpenOrders " , "\n" , "Валютная пара " + "USDJPY" , "\n" , 
                     "Команда: открыть ордер Sell" , "\n" , "Ответ сервера: " ,errors(GetLastError()) );}}

이것은 누구의 입찰 요청입니까?

 //-----------

void CloseOrders(){
       for ( int i = OrdersTotal ()- 1 ; i>= 0 ; i--){
         if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )){
             if ( OrderMagicNumber () == magic[ 0 ]){
               if (USDBuySl || USDBuyTp){
                 while ( IsTradeContextBusy ()){ Sleep ( 10 );}
                 RefreshRates ();
                 OrderClose ( OrderTicket (), OrderLots (), Bid ,slip,Blue);
               }
             }
   .................
         OrderClose ( OrderTicket (), OrderLots (), Ask ,slip,Blue);


고치다

 RefreshRates ();
double bid= MarketInfo ( OrderSymbol (), MODE_BID );
double ask= MarketInfo ( OrderSymbol (), MODE_ASK );
OrderClose ( OrderTicket (), OrderLots (),bid,slip,Blue);
.............
OrderClose ( OrderTicket (), OrderLots (),ask,slip,Blue);
 
전날의 N 표시기 의 최대값을 찾는 것을 도와주세요. iCustom을 통해 데이터를 얻은 다음 막다른 골목에 있습니다. 이것이 ArrayMaximum을 통해 이루어진다는 생각이 있지만 하나의 값으로

다른 옵션이 떠오를 때까지 iCustom을 첨부하는 방법을 이해할 수 없습니다.