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

 
costy_ :

베이직 플랫... :-)

베이직 트렌드와 마찬가지로))

유로가 떨어지고 돌이 떨어지면 플랫


:-)
 
costy_ :
스왑 스프레드가 고려되었습니까?
네 맞습니다. 스프레드 때문입니다. 스왑이 없으며 포지션이 짧습니다. 이익이 손실보다 우세할 수 있도록 고문이 더욱 집요해야 함을 의미합니다. 감사합니다. 노력하겠습니다.
 
costy_ :
양식 후에 ...

예 .... "철저한" 답변입니다. 모든 사건에는 이유가 있어야 합니다. 어떤 종류의 오작동을 만나는 전문가는 무엇을 찾아야하는지 알고 있습니다. 알고리즘을 여러 번 살펴보았지만 이유를 찾지 못해 전문가에게 조언을 구합니다. 이유는 무엇입니까?
 

다음과 같이 보류 중인 주문을 열려고 합니다.

//+---------로트 계산 기능--------------------------------------- --------------- -+
더블 GetLot(int Risk)
{
이중 Free=AccountFreeMargin();
더블 One_Lot=MarketInfo(Symbol(),MODE_MARGINREQUIRED);
이중 Min_Lot=시장 정보(Symbol(),MODE_MINLOT);
이중 Max_Lot=MarketInfo(Symbol(),MODE_MAXLOT);
더블 스텝=MarketInfo(Symbol(),MODE_LOTSTEP);
double Lot=MathFloor(무료*리스크/100/One_Lot/Step)*Step;
if(Lot<Min_Lot)Lot=Min_Lot;
if(Lot>Max_Lot)Lot=Max_Lot;
if(Lot*One_Lot>Free)return(0.0);
반품(로트);
}

//+----------주문을 여는 함수-------------------------------- ------------------ --+
int NewOrder(int Cmd, 이중 로트)
{
이중 TP=0; // 이익을 얻습니다.
이중 SL=0;// 손실 중지
이중 PR=0;// 가격
동안(!IsTradeAllowed())Sleep(100);
if(TakeProfit<MarketInfo(Symbol(),MODE_STOPLEVEL))
TakeProfit=MarketInfo(Symbol(),MODE_STOPLEVEL);
if(스톱로스<MarketInfo(Symbol(),MODE_STOPLEVEL))
StopLoss=MarketInfo(Symbol(),MODE_STOPLEVEL);
if(명령==OP_BUYSTOP)
{
PR=NormalizeDouble(질문, 숫자);
if(TakeProfit>0)TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);
if(StopLoss>0) SL=NormalizeDouble(Bid-StopLoss*Point,Digits);
}
if(명령==OP_SELLSTOP)
{
PR=NormalizeDouble(입찰가, 자릿수);
if(TakeProfit>0)TP=NormalizeDouble(Bid-TakeProfit*Point,Digits);
if(StopLoss>0) SL=NormalizeDouble(Ask+StopLoss*Point,Digits);
}
tic=OrderSend(Symbol(),Cmd,Lot,PR,3,SL,TP,"",0,0,CLR_NONE);
if(tic<0)Print("주문 열기 오류:",GetLastError()); Print("명령어-",명령어,"Lot=",Lot,"PR=",PR,"SL=",SL,"TP=",TP);
리턴(틱);
}

확인할 때 무엇을 제공합니까?

2011.12.06 23:36:50 2010.01.06 16:19 Big Dog 1.01 EURUSD,M15: OrderSend 기능 에 대한 잘못된 로트 금액

2011.12.06 23:36:50 2010.01.06 16:19 Big Dog 1.01 EURUSD,M15: OrderSend 오류 4051

2011.12.06 23:36:51 2010.01.07 17:20 Big Dog 1.01 EURUSD,M15: 주문 개시 오류:405

2011.12.06 23:36:51 2010.01.07 17:20 빅독 1.01 EURUSD,M15: Cmd-5Lot=0PR=1.4316SL=1.4419TP=1.4216

분명히 로트 계산과 관련이 있지만 이해하지 못하는 것입니다))) 알려주세요

 
LOA :

예 .... "철저한" 답변입니다. 모든 사건에는 이유가 있어야 합니다. 어떤 종류의 오작동을 만나는 전문가는 무엇을 찾아야하는지 알고 있습니다. 알고리즘을 여러 번 살펴보았지만 이유를 찾지 못해 전문가에게 조언을 구합니다. 이유는 무엇입니까?

자, 지표는 어디에 있습니까? (커피 찌꺼기 tel. https://www.mql5.comhttps://www.mql5.com/ru/ 추측 )

글쎄, 당신이 모든 것을 나열하면 편지가 끝날 것입니다.

계속 중단 반환 참조 중단이 있고 언제 발생합니까? 바의 오프닝과 함께 작동 ....

"일부 문제를 만났을 때, 그들은주의를 기울여야 할 사항을 알고 있습니다."주의를 기울이지 않고 디버깅을 시작하고 표시기 디버깅을 시작하고 인쇄를 통해 추가로 (특히 낯선 사람과 15와 같은 페이지, 50개 이상의 호출된 기능. ..)

 Print ( "дошли до инициализации, сделаем ресайз запишем все 0.0 size=" + ArrayRange (buf, 0 )+ " resize= " + ArrayResize (buf, Bars )+ "  " + ArrayInitialize (buf, 0.0 )) ;

 

안녕하세요.

배열을 만들었습니다.

 double fibo[]={- 10.09 ,- 5.854 ,- 4.98 ,- 4.108 ,- 3.236 ,- 2.618 ,- 2.11 ,- 1.618 ,- 1.11 ,- 0.618 ,- 0.382 , 0 , 0.118 , 0.236 , 0.382 , 0.5 , 0.618 , 0.764 , 0.882 , 1 , 1.382 , 1.618 , 2.11 , 2.618 , 3.11 , 3.618 , 4.236 , 5.108 , 5.98 , 6.854 , 11.09 };

그러나 어떤 이유로 첫 번째 값은 0으로 재설정됩니다(-10.09가 0이 됨). 다음을 수행하여 해결 방법을 찾았습니다.

 double fibo[]={,- 10.09 ,- 5.854 ,- 4.98 ,- 4.108 ,- 3.236 ,- 2.618 ,- 2.11 ,- 1.618 ,- 1.11 ,- 0.618 ,- 0.382 , 0 , 0.118 , 0.236 , 0.382 , 0.5 , 0.618 , 0.764 , 0.882 , 1 , 1.382 , 1.618 , 2.11 , 2.618 , 3.11 , 3.618 , 4.236 , 5.108 , 5.98 , 6.854 , 11.09 };

말해 주세요. 여기 문제가 무엇입니까? 나는 정말로 그것을 알아내고 싶다.

미리 감사드립니다.

 
nemo811 :

안녕하세요.

배열을 만들었습니다.

그러나 어떤 이유로 첫 번째 값은 0으로 재설정됩니다(-10.09가 0이 됨). 다음을 수행하여 해결 방법을 찾았습니다.

말해 주세요. 여기 문제가 무엇입니까? 나는 정말로 그것을 알아내고 싶다.

미리 감사드립니다.

인덱스 = 0으로 재설정하지 않습니다.

 double fibo[]={- 10.09 ,- 5.854 ,- 4.98 ,- 4.108 ,- 3.236 ,- 2.618 ,- 2.11 ,- 1.618 ,- 1.11 ,- 0.618 ,- 0.382 , 0 , 0.118 , 0.236 , 0.382 , 0.5 , 0.618 , 0.764 , 0.882 , 1 , 1.382 , 1.618 , 2.11 , 2.618 , 3.11 , 3.618 , 4.236 , 5.108 , 5.98 , 6.854 , 11.09 };
Alert (fibo[ 0 ]);

2011.12.06 20:00:47 MA_TF AUDUSD,M30: 경보: -10.09


 

다음은 코드의 문제가 되는 부분입니다.

   if (FIBO)
   {
     double fibo[]={- 10.09 ,- 5.854 ,- 4.98 ,- 4.108 ,- 3.236 ,- 2.618 ,- 2.11 ,- 1.618 ,- 1.11 ,- 0.618 ,- 0.382 , 0 , 0.118 , 0.236 , 0.382 , 0.5 , 0.618 , 0.764 , 0.882 , 1 , 1.382 , 1.618 , 2.11 , 2.618 , 3.11 , 3.618 , 4.236 , 5.108 , 5.98 , 6.854 , 11.09 };
     double fiboPoint = 0 ;
     for (i= 1 ;i< ArraySize (fibo)+ 1 ;i++)
     {
      fiboPoint = NormalizeDouble (MinAsia+Asia*fibo[i], Digits );
       double v = 0 ;
       if (fibo[i]< 0 ) v=( MathAbs (fibo[i])+ 1 )* 100 ;
       else v=fibo[i]* 100 ;
       string kk;
      kk= StringConcatenate ( DoubleToStr (fiboPoint, Digits ), " / " , DoubleToStr (v, 1 ), "%" );
       string k= DoubleToStr (i, 0 );
       ObjectCreate (nameF+k, OBJ_TREND , 0 , 0 , 0 , 0 , 0 , 0 , 0 );
       ObjectSet (nameF+k, OBJPROP_RAY, false);
       ObjectSet (nameF+k, OBJPROP_TIME1, TimeBegAsia);
       ObjectSet (nameF+k, OBJPROP_PRICE1, fiboPoint);
       ObjectSet (nameF+k, OBJPROP_TIME2, FlowTime);
       ObjectSet (nameF+k, OBJPROP_PRICE2, fiboPoint);
       ObjectCreate (nameFT+k, OBJ_TEXT , 0 , 0 , 0 , 0 , 0 , 0 , 0 );
       ObjectSet (nameFT+k, OBJPROP_TIME1, TimeBegAsia);
       ObjectSet (nameFT+k, OBJPROP_PRICE1, fiboPoint);
       ObjectSetText (nameFT+k,kk, 8 , "Arial" );
     }
   }

위에서 설명한 문제가 여기에 있습니다. -10.09 값에서 파생된 선이 그려지지 않습니다( MinAsia 값 사용).

 
nemo811 :

다음은 코드의 문제가 되는 부분입니다.

튀다

 for (i= 0 ;i< ArraySize (fibo)/**/ -/**/ 1 ;i++)
 
mamba5 :

다음과 같이 보류 중인 주문을 열려고 합니다.

//+---------로트 계산 기능--------------------------------------- --------------- -+

확인할 때 무엇을 얻을 수 있습니까?

2011.12.06 23:36:50 2010.01.06 16:19 Big Dog 1.01 EURUSD,M15: OrderSend 기능에 대한 잘못된 로트 금액

2011.12.06 23:36:50 2010.01.06 16:19 Big Dog 1.01 EURUSD,M15: OrderSend 오류 4051

2011.12.06 23:36:51 2010.01.07 17:20 Big Dog 1.01 EURUSD,M15: 주문 개시 오류:405

2011.12.06 23:36:51 2010.01.07 17:20 빅독 1.01 EURUSD,M15: Cmd-5Lot=0PR=1.4316SL=1.4419TP=1.4216

분명히 로트 계산과 관련이 있지만 이해하지 못하는 것입니다))) 알려주세요


오랫동안 검증된 기능을 사용하여 테스터와 실제 tuts 모두에 대한 주문을 엽니다.