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

 
Zhunko :

Vadim, Java로 코딩할 수 있습니까?

 

누군가가 고전적인 마틴게일에 따라 로트를 계산하는 가장 간단한 스크립트를 게시할 수 있습니까? 이전 거래가 손실로 마감되었다면 다음 거래는 이중 로트로 열립니다. 그는 다음과 같이 썼습니다.

외부 이중 로트 = 0.1; 외부 이중 MM_koef = 2; 외부 정수 마법 = 56565;
이중 로트 = 로트;


{ 주문 선택( OrdersHistoryTotal (), SELECT_BY_POS, MODE_HISTORY); // 히스토리에서 마지막 거래를 확인합니다.
if( OrderMagicNumber() == 마법
&& ( (OrderType() == OP_BUY && (OrderOpenPrice()-OrderClosePrice())<0) //구매의 경우 손실을 의미합니다.
|| (OrderType() == OP_SELL && (OrderOpenPrice()-OrderClosePrice())>0) //판매의 경우 손실을 의미합니다.
)
)
lot=OrderLots()*MM_koef;Print(Lots);
}
if (Lots<=0) Lot=Lots;

....OrderSend(Symbol(), OP_BUY, 많이, .......

martin에 의한 자동 로트 계산이 작동하지 않지만 어떤 이유로 0.1과 동일하게 취합니까? 누군가 말할 수 있습니까?

 
AdvoTM : 이전 거래가 손실로 마감되었다면 다음 거래는 더블 로트로 열립니다.

다음은 귀하의 작업과 유사한 것이 있습니다.

 double history(){
   int i;
//обьявляем необходимые нам переменные куда мы положим интересующие нас характеристики ордера   
   double profit;
   datetime time;
   time = 0 ;
   profit = 0 ;
   for (i = OrdersHistoryTotal ();i>= 0 ;i--){ // Перебираем все закрытые ордера
         if ( OrderSelect (i,SELECT_BY_POS,MODE_HISTORY)){ //если ордер с таким номером (i) в списке закрытых ордеров есть ( не путать с тикетом)
             if ( OrderSymbol () == Symbol ()){ //если выбранный ордер был открыт по нашей валютной паре
               if (time< OrderCloseTime ()){ //(сравниваем его с хранящимся в переменной time) 
                  time= OrderCloseTime (); //если время закрытия ордера больше - ложим его в переменную
                  profit= OrderProfit (); //и заодно запоминаем прибыль ордера
               }
            }
         }
   }
//по окончании этой процедуры в наших переменных будут сидет наибольшее время закрытия, и его профит. Или по нулям если история чистая.
//теперь мы можем выставлять условия в зависимости от результата процедуры
   
   if (profit == 0 &&time == 0 ){ //действия если история чистая
       Print ( "история чистая" );
   }
   if (profit >= 0 ){ //действия если последний ордер был прибыльным, или нулевым
       Print ( "последний ордер был прибыльным, или нулевым" );
   }
   if (profit <   0 ){ //действия если последний ордер был убыточным
       Print ( "последний ордер был убыточным" );
   }
return (profit); // вернем в качестве результата функции значение прибыли последнего ордера из истории, так на всякий случай ;)
}
 
https://www.mql5.com/en/auth_login에서 인증이 불가능한 이유를 알려주세요. 로그인 및 비밀번호를 입력할 수 없습니다(커서가 깜박이지 않거나 전혀 존재하지 않음).
 
yosuf :
https://www.mql5.com/en/auth_login에서 인증이 불가능한 이유를 알려주세요. 로그인 및 비밀번호를 입력할 수 없습니다(커서가 깜박이지 않거나 전혀 존재하지 않음).

문제가 있습니다.

시험을 마친. 문제없이 입장했습니다.

 
여러분, 드로다운에 대해 설명해주세요.. 글쎄요, 최대 드로우다운은 이해가 되지만 상대적인가요? 이것은 무엇과 관련이 있습니까? 그리고 절대 드로다운.. %로 표시도 안되는데 뭐지?
 
DhP :

문제가 있습니다.

시험을 마친. 문제없이 입장했습니다.

다시 등록하려면 어떻게 해야 하나요? 또는 도움을 받으려면 어디로 가야 합니까?
 
yosuf :
다시 등록하려면 어떻게 해야 하나요? 또는 도움을 받으려면 어디로 가야 합니까?
먼저 컴퓨터를 다시 시작해 봅니다..))
 
DhP :
먼저 컴퓨터를 다시 시작해 봅니다..))

다시 시작해도 도움이 되지 않았습니다.
 

그리고 어떤 이유로 OrderModify가 있는 EA에서는 가끔 자동으로 수정이 일어나기도 하고, 가끔 창이 뜨는데 확인 버튼을 눌러야 하는 경우도 있습니다(MT에서는 F9로 창이 열립니다).

코드에는 OrderModifu(.......) 행만 있고 위에서 설명한 논리는 확실히 구현되지 않았습니다.

OrderModif가 실패하면 DC가 이 창을 열라는 신호를 보냅니다. 아마도?