MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1777

 
MakarFX # :

예, 흩어져 있습니다)

이제 각 폴더에서 Experts 폴더의 이름을 _ Experts로, Indicators를 _ Indicators로 변경합니다.

한 폴더에서 이름 변경 - 도움이 되지 않는 경우 터미널 시작 - 이름을 다시 변경하고 다음 폴더로 이동합니다.

PS 처음으로 터미널이 평소보다 조금 더 오래 시작됩니다.

마카르!

사건은 오늘 일어났습니다. 따라서 날짜가 오래된 폴더는 만지지 않았습니다.

그리고 새 폴더를 변경해도 아무 것도 변경되지 않았습니다.

그런 다음 프로필, 지표 및 전문가를 가져와 다른 터미널로 끌어왔습니다. 그리고 이 바디아구를 완성했습니다.

이제 모든 것이 작동합니다. 다른 터미널에서, 정말로. 그러나 결과가 중요합니다. 일할 수 있습니다.

그런 다음 해당 터미널을 삭제하겠습니다.

편집자에게 연락하여 지표와 프로필을 찾으라는 제안은 훌륭하다고 생각합니다!

특히 저와 같은 프로그래밍 분야의 "인형"에게는 더욱 그렇습니다.

당신의 도움과 관대함에 진심으로 감사드립니다!

행운을 빕니다!

감사합니다!

 

안녕하세요. 나는 이제 막 모든 것을 이해하기 시작했고, 그래서 나는 즉시 내가 녹색보다 더 녹색이라고 말합니다. 얼마나 오래 갈지는 모르겠지만 경험을 좀 해봐야겠습니다. 이 상황을 겪은 사람이 있으면 알려주십시오. 스크립트 유형 이 필요하거나 다음 10개 지점에서 이를 모니터링하는 코드가 필요합니다. 예를 들어 열린 마을이 없고 위아래로 구매합니다.

1 ..... 예를 들어, 틱이 도착했습니다. 코드는 다음 10개 지점에서 찾고 (또는) 주문을 위로 앉힌 다음 앉는 주문을 설정합니다. 있다면 아무것도 없습니다. 또한 구매 주문과 함께

다음은 Forex EA Generator 의 예시 다이어그램입니다.



파일:
hktrabmcw4.jpg  222 kb
 
valentin104 스크립트 유형 이 필요하거나 다음 10개 지점에서 이를 모니터링하는 코드가 필요합니다. 예를 들어 열린 마을이 없고 위아래로 구매합니다.

1 ..... 예를 들어, 틱이 도착했습니다 - 코드는 다음 10포인트에서 찾고 (또는) 주문을 위로 앉힌 다음 앉는 주문을 설정합니다. 있다면 아무것도 없습니다. 또한 구매 주문과 함께

다음은 Forex EA Generator 의 예시 다이어그램입니다.



바보 계획.

 
Artyom Trishkin # :

바보 계획.

아니요, if와 else가 없으면 이렇게 보입니다.) 하지만 나는 그것에 대해 이야기하고 싶지 않았습니다.

 SymbolInfoDouble ( _Symbol , SYMBOL_TRADE_TICK_SIZE )

스크립트에서 그것은 tick_s =1.0 tick_vflue =80.32786885245902를 제공하고 올빼미에서 tick_value =80.37529660186777 tick_size =1e-05를 제공합니다.

계정이 깨졌습니다.




 
Artyom Trishkin # :

바보 계획.

당신은 요점을 놓쳤다

발렌틴104 # :

안녕하세요. 이제 막 모든 걸 이해하기 시작했어, 나는 바로 초록색보다 더 초록색 이라고 말해

 
Galim_V # :

아니요, if와 else가 없으면 이렇게 보입니다.) 하지만 나는 그것에 대해 이야기하고 싶지 않았습니다.

스크립트에서 그것은 tick_s =1.0 tick_vflue =80.32786885245902를 제공하고 올빼미에서 tick_value =80.37529660186777 tick_size =1e-05를 제공 합니다.

계정이 깨졌습니다.




tick_size=1e-05

DoubleToString 정규화( tick_size ,2)

 
MakarFX # :

tick_size=1e-05

DoubleToString 정규화( tick_size ,2)

혼자 제로. 수백명도 찾지 못했다.

 //+------------------------------------------------------------------+
//|                                                     MAX+risk.mq4 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link        " https://www.mql5.com "
#property version    "1.00"
#property strict
#property script_show_inputs
enum Mani
  {
   free_margin,
   balans
  };
input Mani risk_mani;
input double Lot= 0.0 ;
input int max_risk = 0 ; //В% от свободных средсв или...
input int stoploss= 300 ;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   double Lots= 0 ;
   int     Max_Risk= 0 ;

   printf ( "ACCOUNT_MARGIN_FREE =  %G" , AccountInfoDouble ( ACCOUNT_MARGIN_FREE )); //Размер свободных средств на счете  в валюте
   printf ( "ACCOUNT_BALANCE =  %G" , AccountInfoDouble ( ACCOUNT_BALANCE )); //Баланс счета в валюте депозита
   printf ( "ACCOUNT_MARGIN_LEVEL =  %G" , AccountInfoDouble ( ACCOUNT_MARGIN_LEVEL ));     // Уровень залоговых средств в %

   double freemani= AccountInfoDouble ( ACCOUNT_MARGIN_FREE );
   double balance= AccountInfoDouble ( ACCOUNT_BALANCE );
   double tick_s =   SymbolInfoDouble ( _Symbol , SYMBOL_TRADE_TICK_SIZE )/ _Point ;   //Минимальное изменение цены
   double tick_value= SymbolInfoDouble ( _Symbol , SYMBOL_TRADE_TICK_VALUE ); //Размер минимального изменения цены инструмента в валюте депозита
   if (risk_mani==balans)
     {
       if (max_risk> 0 &&stoploss> 0 )
        {
         double tmp= balance*max_risk/ 100 /(stoploss* _Point * SymbolInfoDouble ( _Symbol , SYMBOL_TRADE_TICK_VALUE )/ SymbolInfoDouble ( _Symbol , SYMBOL_TRADE_TICK_SIZE ));
         Lots= NormalizeDouble (tmp, 2 );
         printf ( " Чтобы max_risk был не более %f%s%d%s%f" ,max_risk, " в % от ACCOUNT_BALANCE при stoploss =" ,stoploss, ",неоходим Lots =" ,Lots);
        }
       if (Lot> 0 )
        {
         Max_Risk= ( int ) MathRound (Lot*(stoploss* _Point * SymbolInfoDouble ( _Symbol , SYMBOL_TRADE_TICK_VALUE )/ SymbolInfoDouble ( _Symbol , SYMBOL_TRADE_TICK_SIZE ))/balance* 100 );
         printf ( " Max_Risk при Lot=%f%s%d,%s%d%s" ,Lot, " и stoploss =" ,stoploss, " будет =" ,Max_Risk, "%" );
        }
     }
   if (risk_mani==free_margin)
     {
       if (max_risk> 0 &&stoploss> 0 )
        {
         double tmp= freemani*max_risk/ 100 /(stoploss* _Point * SymbolInfoDouble ( _Symbol , SYMBOL_TRADE_TICK_VALUE )/ SymbolInfoDouble ( _Symbol , SYMBOL_TRADE_TICK_SIZE ));
         Lots= NormalizeDouble (tmp, 2 );
         printf ( " Чтобы max_risk был не более %f%s%d%s%f" ,max_risk, " в % от ACCOUNT_MARGIN_FREE при stoploss =" ,stoploss, ",неоходим Lots =" ,Lots);
        }
       if (Lot> 0 )
        {
         Max_Risk= ( int ) MathRound (Lot*(stoploss* _Point * SymbolInfoDouble ( _Symbol , SYMBOL_TRADE_TICK_VALUE )/ SymbolInfoDouble ( _Symbol , SYMBOL_TRADE_TICK_SIZE ))/freemani* 100 );
         printf ( " Max_Risk при Lot=%f%s%d,%s%d%s" ,Lot, " и stoploss =" ,stoploss, " будет =" ,Max_Risk, "%" );
        }
     }
   Print ( "Lots =" ,Lots, " Max_Risk =" ,Max_Risk, " tick_s =" ,tick_s, " tick_vflue =" ,tick_value);
  }
//+------------------------------------------------------------------+

여기에서 작동합니다. 올빼미에서는 함수 대신 변수를 사용합니다. 그러나 이미 초기에 이 함수는 OnTick()에서 쓰레기를 제공합니다.

 
Galim_V # :

혼자 제로. 수백명도 찾지 못했다.

여기에서 작동합니다. 올빼미에서는 함수 대신 변수를 사용합니다. 그러나 이미 초기에 이 함수는 OnTick()에서 쓰레기를 제공합니다.

설립하다. 죄송합니다. 의미   tick_size =1e-05는 0.00001이고 정확합니다.

 
valentin104 # :

나는 즉시 내가 녹색보다 더 녹색이라고 말합니다. 얼마나 오래 버틸지 모르겠어


프로그래밍 학습에 대한 이러한 접근 방식을 사용하면 걱정하지 않고 프로그래머를 고용하는 것이 좋습니다.

 

표준 납품의 ZigZag 표시기가 있으며 DRAW_SECTION 선 그리기 스타일이 있습니다. 표시기 버퍼에 있는 대부분 값은 EMPTY_VALUE와 같으며 때로는 이 값과 다른 값(중단점)이 선이 그려지는 곳에 나타납니다. 나는 모든 사람이 이 지표와(또는) 그 코드를 일생에 한 번 이상 본 적이 있다고 믿습니다.

작업은 마지막 전환점에 해당하는 값 얻는 것입니다. EMPTY_VALUE와 같지 않은 표시기 버퍼의 최신 값입니다.

주의, 질문은 다음과 같습니다. 루프에서 표시기 버퍼의 값을 반복하는 것이 올바른 접근 방식입니까? 깊이의 0 이동에서 시작하여 각 반복에서 iCustom 함수를 호출하여 결과 값이 EMPTY_VALUE와 다를 때까지 ?

아니면 이 값을 얻는 더 쉬운 방법이 있습니까?