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

 
volshebnik :
테스터의 속도가 3년차로 갈수록 떨어지는 이유는?


그런 문제가 있습니다. 고문이 일년에 많은 트랜잭션을 수행하는 경우에도 마찬가지입니다. 최종 결과를 표시하기 위해 많은 데이터가 저장되거나 표시기 버퍼 가 메모리를 차지할 수 있습니다.

일반적으로 나는 보았다-모르겠다, 참으라-전반적으로 10년 동안의 시험이지만 1년 동안 최적화한 다음 최적의 매개변수를 선택하는 것이 낫다

 

다양한 십자가를 분석한 다음 다른 쌍을 주문하고 싶습니다.

int magic = 428;//전문가의 매직 넘버
extern double volume = 0.1;//주문량
extern int 슬리피지 = 3;//슬립페이지
int OPB;//주문한 구매 주문의 레이블
int OPS;//판매 주문의 레이블
int Profit=1;//오픈 주문의 이익 수준
string comB = "구매 경향 항목";//주문 주석
string comS = "판매 동향 입력";//주문 댓글
double StochasticCAD;//USDCAD의 현재 막대에서 주 스토캐스틱 라인의 위치
double StochasticAUD;//AUDUSD에 대한 현재 막대의 주요 스토캐스틱 라인의 위치

double SARCAD; // USDCAD 표시기의 현재 위치
double SARCCAD; // USDCAD의 표시기 위치 표시줄
double SARAUD;//AUDUSD 표시기의 현재 위치
double SARСAUD;//표시 위치 막대를 AUDUSD로 되돌립니다.


정수 시작()
{

//______________________________ 변수 값의 정의 _______________________


StochasticCAD = iStochastic("USDCAD",30,5,3,3,1,1,0,0);
StochasticAUD = iStochastic("AUDUSD",30,5,3,3,1,1,1,0);

SARCAD=iSAR("USDCAD",30,0.02,0.2,0);
SACCAD=iSAR("USDCAD",30,0.02,0.2,1);
SARAUD=iSAR("AUDUSD",30,0.02,0.2,0);
SARСAUD=iSAR("AUDUSD",30,0.02,0.2,1);

이중 입찰CAD =MarketInfo("USDCAD",MODE_BID);
이중 AskCAD = MarketInfo("USDCAD",MODE_ASK);
doublebidAUD =MarketInfo("AUDUSD",MODE_BID);
이중 AskAUD =MarketInfo("AUDUSD",MODE_ASK);




//______________________________ 주문 검색 및 마감 _______________________________________


정수 나;
for(i=0; i<=OrdersTotal(); i++)
{
if(주문선택(i,SELECT_BY_POS,MODE_TRADES)==거짓)
break;//주문 번호 i가 존재하지 않으면 검색을 중지합니다.

if (OrderSymbol() != "GBPUSD" || OrderMagicNumber() != magic) // 주문이 이 쌍의 주문이 아닌 경우 Expert Advisor가 있는
계속하다; // 건너뛰고 그 뒤의 다음 순서를 봅니다.


//__________ 마감 매수____
if (OrderType() == OP_BUY && OrderProfit()>=이익)
// 주문이 매수인 경우
{
OPB=1;
if(StochasticCAD==0 || StochasticAUD==100 || SARCAD<bidCAD || SARAUD>askAUD)//시장이 반전에 가깝습니다.
{
OrderClose(OrderTicket(),OrderLots(), 입찰, 미끄러짐, 밀); // 이익이면 닫는다.
OPB=0;
}
}
또 다른
{
//__________ 마감 매도__________
if(OrderType() == OP_SELL && OrderProfit()>=Profit)// 매도 주문인 경우
{OPS=1;
if(StochasticCAD==100 || StochasticAUD==0 || SARCAD>askCAD || SARAUD<bidAUD)//시장이 반전에 가깝습니다.
{
OrderClose(OrderTicket(),OrderLots(),Ask,slippage,PaleTurquoise); // 이익이면 닫는다.
작전 = 0;
}
}
}
}

//______________ 명령을 내리기 ______________________________________________________________________


if (SARCAD>askCAD && SARCCAD<bidCAD && SARAUD<bidAUD && SARСAUD>askAUD && OPB<1)//조건 정의

{ //_______구입하다_______

if(!IsTradeAllowed())
{
Alert("거래 스레드가 사용 중입니다. 다시 구매를 시도하십시오...");
리턴(-1);
}
OPB =OrderSend("GBPUSD",OP_BUY,볼륨,묻기,슬립 페이지,0,0,comB,매직,0,빨간색); //주문을 넣다

if(OPB == -1)
{
Alert("GBPUSD","오류: 구매", GetLastError());
리턴(-1);
}

if(OPB > 1)
Alert("GBPUSD","구매 주문 완료!");

}
또 다른
{//______팔다_______

if (SARCCAD>askCAD && SARCAD<bidCAD && SARCAUD<bidAUD && SARAUD>askAUD && OPS<1)//조건 정의

{

if(!IsTradeAllowed())
{
Alert("거래 쓰레드가 바빠서 다시 매도를 해보자...");
리턴(-1);
}

OPS=OrderSend("GBPUSD",OP_SELL,거래량,Bid,Slippage,0,0,comS,magic,0,Blue); //주문을 넣다


if(OPS == -1)
{
Alert("GBPUSD","오류: 판매", GetLastError());
리턴(-1);
}

if(OPS > 1)
Alert("GBPUSD","판매 주문 완료!");

}
}
return(0);//종료
}


테스트할 때 아무것도 표시되지 않습니다. 결과가 없습니다.

로그에는 다음과 같은 오류 집합이 포함되어 있습니다.

무슨 일이야???

 
ViktorF :

다양한 십자가를 분석한 다음 다른 쌍을 주문하고 싶습니다.

int magic = 428;//전문가의 매직 넘버
extern double volume = 0.1;//주문량
extern int 슬리피지 = 3;//슬립페이지
int OPB;//주문한 구매 주문의 레이블
int OPS;//판매 주문의 레이블
int Profit=1;//오픈 주문의 이익 수준
string comB = "구매 경향 항목";//주문 주석
string comS = "판매 동향 입력";//주문 댓글
double StochasticCAD;//USDCAD의 현재 막대에서 주 스토캐스틱 라인의 위치
double StochasticAUD;//AUDUSD에 대한 현재 막대의 주요 스토캐스틱 라인의 위치

double SARCAD; // USDCAD 표시기의 현재 위치
double SARCCAD; // USDCAD의 표시기 위치 표시줄
double SARAUD;//AUDUSD 표시기의 현재 위치
double SARСAUD;//표시 위치 막대를 AUDUSD로 되돌립니다.


정수 시작()
{



//______________________________ 변수 값의 정의 _______________________


StochasticCAD = iStochastic("USDCAD",30,5,3,3,1,1,0,0);
StochasticAUD = iStochastic("AUDUSD",30,5,3,3,1,1,1,0);

SARCAD=iSAR("USDCAD",30,0.02,0.2,0);
SACCAD=iSAR("USDCAD",30,0.02,0.2,1);
SARAUD=iSAR("AUDUSD",30,0.02,0.2,0);
SARСAUD=iSAR("AUDUSD",30,0.02,0.2,1);

이중 입찰CAD =MarketInfo("USDCAD",MODE_BID);
이중 AskCAD = MarketInfo("USDCAD",MODE_ASK);
doublebidAUD =MarketInfo("AUDUSD",MODE_BID);
이중 AskAUD =MarketInfo("AUDUSD",MODE_ASK);




//______________________________ 주문 검색 및 마감 _______________________________________


정수 나;
for(i=0; i<=OrdersTotal(); i++)
{
if(주문선택(i,SELECT_BY_POS,MODE_TRADES)==거짓)
break;//주문 번호 i가 존재하지 않으면 검색을 중지합니다.

if (OrderSymbol() != "GBPUSD" || OrderMagicNumber() != magic) // 주문이 이 쌍의 주문이 아닌 경우 Expert Advisor가 있는
계속하다; // 건너뛰고 그 뒤의 다음 순서를 봅니다.


//__________ 마감 매수____
if (OrderType() == OP_BUY && OrderProfit()>=이익)
// 주문이 매수인 경우
{
OPB=1;
if(StochasticCAD==0 || StochasticAUD==100 || SARCAD<bidCAD || SARAUD>askAUD)//시장이 반전에 가깝습니다.
{
OrderClose(OrderTicket(),OrderLots(), 입찰, 미끄러짐, 밀); // 이익이면 닫는다.
OPB=0;
}
}
또 다른
{
//__________ 마감 매도__________
if(OrderType() == OP_SELL && OrderProfit()>=Profit)// 매도 주문인 경우
{OPS=1;
if(StochasticCAD==100 || StochasticAUD==0 || SARCAD>askCAD || SARAUD<bidAUD)//시장이 반전에 가깝습니다.
{
OrderClose(OrderTicket(),OrderLots(),Ask,slippage,PaleTurquoise); // 이익이면 닫는다.
작전 = 0;
}
}
}
}

//______________ 명령을 내리기 ______________________________________________________________________


if (SARCAD>askCAD && SARCCAD<bidCAD && SARAUD<bidAUD && SARСAUD>askAUD && OPB<1)//조건 정의

{ //_______구입하다_______

if(!IsTradeAllowed())
{
Alert("거래 스레드가 사용 중입니다. 다시 구매를 시도하십시오...");
리턴(-1);
}
OPB =OrderSend("GBPUSD",OP_BUY,볼륨,Ask,slippage,0,0,comB,magic,0,Red); //주문을 넣다

if(OPB == -1)
{
Alert("GBPUSD","오류: 구매", GetLastError());
리턴(-1);
}

if(OPB > 1)
Alert("GBPUSD","구매 주문 완료!");

}
또 다른
{//______팔다_______

if (SARCCAD>askCAD && SARCAD<bidCAD && SARCAUD<bidAUD && SARAUD>askAUD && OPS<1)//조건 정의

{

if(!IsTradeAllowed())
{
Alert("거래 쓰레드가 바빠서 다시 매도를 해보자...");
리턴(-1);
}

OPS=OrderSend("GBPUSD",OP_SELL,거래량,Bid,Slippage,0,0,comS,magic,0,Blue); //주문을 넣다


if(OPS == -1)
{
Alert("GBPUSD","오류: 판매", GetLastError());
리턴(-1);
}

if(OPS > 1)
Alert("GBPUSD","판매 주문 완료!");

}
}
return(0);//종료
}


테스트할 때 아무것도 표시되지 않습니다. 결과가 없습니다.

로그에는 다음과 같은 오류 집합이 포함되어 있습니다.

무슨 일이야???


시작하려면 "Control + Alt + M" 키를 동시에 눌러 창에 코드를 붙여넣는 방법을 배우십시오.

또한 로그에서 해당 오류 메시지 를 두 번 클릭해 보십시오. 몇 가지 아이디어를 얻을 수 있습니다.

 
Roman. :


시작하려면 "Control + Alt + M" 키를 동시에 눌러 창에 코드를 붙여넣는 방법을 배우십시오. 그러면 사람들이 탐색하고 말도 안 되는 권장 사항을 제공할 수 있습니다.

또한 로그에서 해당 오류 메시지를 두 번 클릭해 보십시오. 몇 가지 아이디어를 얻을 수 있습니다.


컴파일러가 아닌 테스터의 로그에 있는 오류...(먼저 보고 주석을 달면 그림에서 실제로 볼 수 있습니다...). 더블클릭하면 아무것도 안됨...

 
int magic = 428;//магический номер эксперта
extern double volume = 0.1;//объем выставляемого ордера
extern int slippage = 3;//проскальзывание
int OPB;//метка выставляемого ордера на покупку
int OPS;//метка выставляемого ордера на продажу
int Profit=1;//уровень профита открытых ордеров
string comB = "Вход по тренду на Buy";//комментарий ордера
string comS = "Вход по тренду на Sell";//комментарий ордера
double StochasticCAD;//положение основной линии Стохастики на текущем баре по USDCAD
double StochasticAUD;//положение основной линии Стохастики на текущем баре по AUDUSD

double SARCAD;//текущее положение индикатора по USDCAD
double SARСCAD;//положение индикатора бар назад по USDCAD
double SARAUD;//текущее положение индикатора по AUDUSD
double SARСAUD;//положение индикатора бар назад по AUDUSD

double bidCAD;
double askCAD;
double bidAUD;
double askAUD;

int start()
  {
  
//______________________________определение значений переменных_______________________ 


      StochasticCAD = iStochastic("USDCAD",30,5,3,3,1,1,0,0); 
      StochasticAUD = iStochastic("AUDUSD",30,5,3,3,1,1,1,0);
      
      SARCAD=iSAR("USDCAD",30,0.02,0.2,0);
      SARСCAD=iSAR("USDCAD",30,0.02,0.2,1);
      SARAUD=iSAR("AUDUSD",30,0.02,0.2,0);
      SARСAUD=iSAR("AUDUSD",30,0.02,0.2,1);
      
      bidCAD   =MarketInfo("USDCAD",MODE_BID);
      askCAD   =MarketInfo("USDCAD",MODE_ASK);
      bidAUD   =MarketInfo("AUDUSD",MODE_BID);
      askAUD   =MarketInfo("AUDUSD",MODE_ASK);


      

//______________________________поиск и закрытие ордеров_______________________________________   
    

    int i;
    for(i=0; i<=OrdersTotal(); i++)
    {
     if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)
     break;// если ордер номер i не существует, прекращаем перебор
  
        if (OrderSymbol() != "GBPUSD" || OrderMagicNumber() != magic) // если ордер не с этой пары, на которой стоит наш эксперт
        continue; // пропускаем его и смотрим на следующий за ним ордер
        

      //_______закрытие Buy_______       
        if (OrderType() == OP_BUY && OrderProfit()>=Profit) 
        // если ордер бай 
        {
         OPB=1;
         if(StochasticCAD==0 || StochasticAUD==100 || SARCAD<bidCAD || SARAUD>askAUD)//и рынок близок к развороту
          {
           OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Wheat); // закроем его, если он в профите
           OPB=0;
          }
        }
        else  
        {
      //_______закрытие Sell_______ 
         if(OrderType() == OP_SELL && OrderProfit()>=Profit)// если ордер селл
          {OPS=1;
           if(StochasticCAD==100 || StochasticAUD==0 || SARCAD>askCAD || SARAUD<bidAUD)//и рынок близок к развороту
            {
             OrderClose(OrderTicket(),OrderLots(),Ask,slippage,PaleTurquoise); // закроем его, если он в профите
             OPS=0;
            }
          }
        }
    }
        
//______________выставление ордеров______________________________________________________________________
    
  
    if (SARCAD>askCAD && SARСCAD<bidCAD && SARAUD<bidAUD && SARСAUD>askAUD && OPB<1)//определим условия
     
     {  //_______Buy_______ 

          if(!IsTradeAllowed())
               {
                  Alert("занят торговый поток, повторим попытку бай...");
                  return(-1);
               }
          OPB =OrderSend("GBPUSD",OP_BUY,volume,Ask,slippage,0,0,comB,magic,0,Red); //выставим ордер
            
            if(OPB == -1)
              {
                 Alert("GBPUSD"," ошибка: бай", GetLastError());
                 return(-1);
              }
         
            if(OPB > 1)
            Alert ("GBPUSD","Выставили ордер на покупку!");

     }
      else
     {//_______Sell_______
  
         if (SARСCAD>askCAD && SARCAD<bidCAD && SARСAUD<bidAUD && SARAUD>askAUD && OPS<1)//определим условия
     
         {
          
           if(!IsTradeAllowed())
                {
                   Alert("занят торговый поток, повторим попытку селл...");
                   return(-1);
                }
        
           OPS=OrderSend("GBPUSD",OP_SELL,volume,Bid,slippage,0,0,comS,magic,0,Blue); //выставим ордер


             if(OPS == -1)
               {
                  Alert("GBPUSD"," ошибка: селл", GetLastError());
                  return(-1);
               }
         
             if(OPS > 1)
             Alert ("GBPUSD","Выставили ордер на продажу!");

         }
     }    
   return(0);//выход
  }

 
ViktorF :


모든 진드기에 대한 테스트? 역사 문제
 
Vinin :

모든 진드기에 대한 테스트? 역사 문제

저것들. 분석에 관련된 모든 쌍의 기록을 다시 로드해야 합니까?
 
ViktorF :

저것들. 분석에 관련된 모든 쌍의 기록을 다시 로드해야 합니까?


아마도. 물론 DC가 지원한다면.

테스터에서 현재 계측기의 위치를 열 수 있으며 다른 계측기에는 여러 가지 제한 사항이 있음을 잊지 마십시오.

 
Vinin :


아마도. 물론 DC가 지원한다면.

테스터에서 현재 계측기의 위치를 열 수 있으며 다른 계측기에는 여러 가지 제한 사항이 있음을 잊지 마십시오.


DC 란 무엇입니까? 그리고 다른 악기에 대한 제한 사항은 무엇입니까?
 
ViktorF :

DC 란 무엇입니까? 그리고 다른 악기에 대한 제한 사항은 무엇입니까?


DC - 거래 센터

다른 악기에 대한 테스터에서는 제로 바 에서만 시가를 얻을 수 있고 , 다른 악기에 대한 틱은 모델링되지 않으며, 시장 환경은 실질적으로 접근할 수 없습니다.

다른 상품에 대한 거래는 열리지 않습니다.

다중 통화 분석을 올바르게 수행해야 하는 경우 MT5를 사용하는 것이 좋습니다. 다중 통화 테스터가 있습니다.