[경고, 주제 닫힘!] 포럼을 어지럽히지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 당신 없이는 어디에도 없습니다. - 페이지 700

 
cyclik33 :


코드가 안되는 이유에 대해 답변을 드렸는데요 - 아예 엉뚱한 곳에 등록하셨네요... :) 바퀴를 풀고 트렁크에 넣으면 멀진 않겠지만 바퀴를 사용할 수 있고 문이 닫히는 것 같습니다 ... :)
 
TG :

질문은 진부할 수 있고, 고문은 M1에서 거래하고, 주문을 시작하라는 신호를 수신했습니다. 스탑이 짧고 다음 주문에 주문이 마감되었다고 가정합니다. 그러나 개방 조건은 여전히 있습니다.

같은 시간에 주문이 다시 열리지 않도록 하는 가장 좋은 방법은 무엇입니까? 다음 편만 어때? 미리 감사합니다!

새 양초 의 개봉을 확인하십시오. 새 경우 - 열려 있고 오래된 경우 - 아니요 ...
 
ToLik_SRGV :

OrderSelect() 함수의 숫자 개수는 0부터 시작합니다. 그리고 당신은 1을 가지고 있습니다. 즉, 두 번째 주문을 찾고 있지만 시장에는 하나만 있으므로 작동하지 않습니다.

고마워, 잊어버렸어.
 
ToLik_SRGV :

코드를 약간 수정한 Boris는 원래 로트로 돌아갈 때 어레이 위치 재설정을 추가하는 것을 잊었습니다.


Tolik은 저에게 이상하게 작동합니다. 무익한 로트 이후에는 초기 로트를 열 수 있으며, 이 로트가 무익하면 처음 로트를 다시 열 수 있습니다.

그리고 때로는 첫 번째 패배 후 0.4를 깨뜨립니다.

내가 뭔가를 잘못된 위치에 넣은 것이 틀림없습니까?

 
cyclik33 :


Tolik은 저에게 이상하게 작동합니다. 무익한 로트 이후에는 초기 로트를 열 수 있으며, 이 로트가 무익하면 처음 로트를 다시 열 수 있습니다.
그리고 때로는 첫 번째 패배 후 0.4를 깨뜨립니다.
내가 뭔가를 잘못된 위치에 넣은 것이 틀림없습니까?

코드를 약간 수정한 Boris는 원래 로트로 돌아갈 때 어레이 위치 재설정을 추가하는 것을 잊었습니다.

 //+------------------------------------------------------------------+
double getMartinLot( double lot, double arrayLot[]){ //ФУНКЦИЯ УПРАВЛЕНИЯ ОБъЕМОМ ТОРГОВ ПО СИСТЕМЕ МАРТИНГЕЙЛА
   static double balance_before, balance_after;    //ДЛЯ ХРАНЕНИЯ СОСТОЯНИЯ БАЛАНСА ДО И ПОСЛЕ СДЕЛОК
   static double save_Lot;   
   static int loop;
   if (loop == ArraySize (arrayLot))loop = 0 ;   
   balance_after = AccountBalance();               //СОХРАНЕНИЕ ТЕКУЩЕГО СОСТОЯНИЯ БАЛАНСА   
   if (balance_after >= balance_before){            //ПРОВЕРКА ИЗМЕНЕНИЯ БАЛАНСА
      save_Lot = lot;                              //ЕСЛИ ОН НЕ ИЗМЕНИЛСЯ ИЛИ СТАЛ БОЛЬШЕ, ТО СБРАСЫВАЕМ ЛОТ ДО БАЗОВОГО
      loop = 0 ;
   } else {
      save_Lot = arrayLot[loop];                   //ЕСЛИ СТАЛ МЕНЬШЕ ТО УВЕЛИЧИВАЕМ ЛОТ
      loop++;
   }
   balance_before = balance_after;                 //СОХРАНЯЕМ СОСТОЯНИЕ БАЛАНСА ПОСЛЕ РАБОТЫ
   return (save_Lot);
}
//+------------------------------------------------------------------+
 
artmedia70 :
코드가 안되는 이유에 대해 답변을 드렸는데요 - 아예 엉뚱한 곳에 등록하셨네요... :) 바퀴를 풀고 트렁크에 넣으면 멀진 않겠지만 바퀴를 사용할 수 있고 문이 닫히는 것 같습니다 ... :)


나는 당신에게 절대적으로 동의합니다. 하지만 결국, 나는 당신의 코드를 조금도 비판하지 않았고, 단지 내가 그것에 문제가 있다고 말했다), 그건 그렇고, 나는 그것에 다시 문제가 있었습니다. 어렵지 않다면 - 무엇이 잘못되었는지 말해주세요, 나는 정말로 내가 뭘 잘못하고 있는지 알아내고 싶어.

외부 색상 colorOpenBuy = 파란색;
extern color colorCloseBuy = 아쿠아;
외부 색상 colorOpenSell = 빨간색;
외부 색상 colorCloseSell = 아쿠아;


무효 deinit() {
주석 ("");
}

이중 lot_New = 제비;


//+----------------------------------------------- --------------------+
//| |
//+----------------------------------------------- --------------------+

정수 시작(){
if (lFlagUseHourTrade){
if (!(Hour()>=nFromHourTrade && Hour()<=nToHourTrade)) {
Comment("거래의 시간이 오지 않았습니다!");
리턴(0);

제안한 대로 Start 함수 전에 여기에 삽입했지만 컴파일할 때 'Lot'이라고 표시됩니다. 초기화 예상 D:\MetaTrader\experts\Prostoj_2.mq4 (39, 20)

무엇이 될 수 있는지 말해 주세요.

 
artmedia70 :
새 양초의 개봉을 확인하십시오. 새 경우 - 열려 있고 오래된 경우 - 아니요 ...
어떻게 하면 더 잘할 수 있을까요?
 
cyclik33 :


나는 당신과 절대적으로 동의합니다. 하지만 결국, 나는 당신의 코드를 조금도 비판하지 않았고, 단지 내가 그것에 문제가 있다고 말했다), 그건 그렇고, 나는 그것에 다시 문제가 있었습니다. 어렵지 않다면 - 무엇이 잘못되었는지 말해주세요, 나는 정말로 내가 뭘 잘못하고 있는지 알아내고 싶어.

외부 색상 colorOpenBuy = 파란색;
extern color colorCloseBuy = 아쿠아;
외부 색상 colorOpenSell = 빨간색;
외부 색상 colorCloseSell = 아쿠아;


무효 deinit() {
논평("");
}

이중 lot_New = 제비;


//+----------------------------------------------- --------------------+
//| |
//+----------------------------------------------- --------------------+

정수 시작(){
if (lFlagUseHourTrade){
if (!(Hour()>=nFromHourTrade && Hour()<=nToHourTrade)) {
Comment("거래의 시간이 오지 않았습니다!");
반환(0);

제안한 대로 Start 함수 전에 여기에 삽입했지만 컴파일할 때 'Lot'이라고 표시됩니다. 초기화 예상 D:\MetaTrader\experts\Prostoj_2.mq4 (39, 20)

무엇이 될 수 있는지 말해 주세요.

Lot는 어디에서 초기화되나요?

 extern color colorOpenBuy = Blue ;
extern color colorCloseBuy = Aqua ;
extern color colorOpenSell = Red ;
extern color colorCloseSell = Aqua ;
extern double Lot = 0.1 ;
double Lots_New;

void deinit() {
Comment ( "" );
}

//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+

int start(){
if (lFlagUseHourTrade){
if (!(Hour()>=nFromHourTrade && Hour()<=nToHourTrade)) {
Comment ( "Time for trade has not come else!" );
return ( 0 );

또한, moose를 확인한 후에만 이전에 작성된대로 Lottes_New를 변경하거나 값 = Lot를 할당하십시오.

 

네, 선생님.. 배열이 어렵네요.. 배열을 인듀서의 데이터로 채우려는데 , ma-a-a-lazy 함수가 저를 막다른 골목에 빠뜨렸습니다.. 말해봐, 내가 뭘 잘못하고 있니?

 double       TempIND[ 50 ]; 
void    SaveDataIND( double TempIND[], int nBars)
{
   ArrayResize (TempIND,nBars);
   for ( int j= 0 ; j<=nBars- 1 ; j++)
      {
         TempIND[j]= iAD ( NULL , PERIOD_M5 ,j);       // ЗДЕСЬ ОШИБКА array item cannot be assigned
         Print ( "TempIND[" ,j, "] = " ,TempIND[j]);
      }

}

나는 이렇게 부른다.

SaveDataIND(TempIND, 20 );
개는 어디를 팠습니까?
 
artmedia70 :

네, 선생님... 배열이 어려워요... 배열을 인듀서의 데이터로 채우려고 합니다. 게으른 함수가 저를 막다른 골목에 빠뜨렸습니다... 말해봐 내가 잘못하고 있어?

나는 이렇게 부른다.

개는 어디를 팠습니까?



SaveDataIND(double TempIND[])와 같이 전달하면 개는 매개변수를 함수에 전달하는 것을 뒤적거립니다.

그런 다음 double TempIND[ ]는 실제로 함수의 새 배열이지만 매개변수를 변경할 수 있는 권한이 없으면 SaveDataIND(double & TempIND[])를 시도하십시오.