5 wmz에 대해 하나의 스크립트를 실행합니다. - 페이지 14

 
Profitabl :

이 코드는 4개의 오류와 함께 컴파일됩니다. 아마도 대괄호가 누락된 부분이 어디일까요?


다음과 같이 시도하십시오.

음, 따라서 NumberOfPositions 및 ClosePositions 함수가 코드에 있어야 합니다.

 extern double TakeProfit = 120 ;
extern double StopLoss = 120 ;
extern double Lots = 0.1 ;
int Magic = 1234567 ;
int ticket;

//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
if ( DayOfWeek()== 4 ) //если сегодня четверг
   {
     if ( Hour() == 23 ) //если - 23 часа терминального времени
       {
         if ( NumberOfPositions( NULL ,OP_BUY, Magic )== 0 ) //если нет открытых бай-позиций
           { 
           //"если цена open 46 периода 30M четверга меньше цены open 46 периода 30M среды,"(с)
           //"а цена опен среды больше цены опен вторника" (с),
           //"да ещё цена опен вторника больше цены опен понедельника" (с),
           if ( Close[ 1 ]<= Open[ 24 ] && Close[ 23 ]>=Open[ 48 ] && Close[ 47 ]>=Open[ 72 ]) 
              {
               ticket= OrderSend ( Symbol (),OP_BUY,Lots,Ask+StopLoss* Point , 3 , 0 ,Ask+TakeProfit* Point , "Name_Expert" , 16384 , 0 , Green );
               if (ticket!=- 1 )
                  { Print ( "Error opening BUY order : " , GetLastError ());
                   return ( 0 );}
              }     

           }
           
        }
   }       

if ( DayOfWeek()== 5 && Hour() == 23 ){ //если сегодня пятница, 23-00
//закрываем
ClosePositions( NULL ,OP_BUY, Magic); }

return ( 0 );
}
// the end.

 

==================

4개의 오류가 없었습니다. 사용하지 않은 기능이 4개 있었습니다. 제거됨.

반복합니다. tf=n1 확인

 extern int       Magic= 5671 ;

extern double    lots = 0.1 ;
extern int       StopLoss= 120 ;
extern int       TakeProfit= 120 ;

extern string _________________ = "=== Прочие Параметры советника  ===" ;
extern int        Slippage        = 10 ; // Проскальзывание цены
extern string Name_Expert = "Обезьяна Чи-Чи-Чи продавала кирпичи" ;
extern bool   UseSound      = True;   // Использовать звуковой сигнал
color  clOpenBuy     = Blue ;        // Цвет значка открытия покупки
color  clOpenSell    = Red ;         // Цвет значка открытия продажи
 color  clCloseBuy    = Green ;     // Цвет закрытия покупки
 color  clCloseSell   = Green ;    // Цвет закрытия продажи
extern int    NumberOfTry   = 10 ;           // Количество попыток
 string SoundSuccess  = "ok.wav" ;          // Звук успеха
 string SoundError    = "timeout.wav" ;    // Звук ошибки

//----------------------------------
double SL,TP;
int ticket;
static int prevtime = 0 ;
int StopLevel;

//-- Подключаемые модули --

#include <stderror.mqh>
#include <stdlib.mqh>

//+------------------------------------------------------------------+

int start()
  {
// задаем работу по ЦЕНАМ ОТКРЫТИЯ 
if (Time[ 0 ] == prevtime) return ( 0 ); //если появился новый бар
   prevtime = Time[ 0 ]; // начинаем работу

StopLevel = MarketInfo( Symbol (),MODE_STOPLEVEL); // вызываем разрешенный 
//минимаьный стоп-Уровень
//======================= открываем позиции =====================================
if ( DayOfWeek()== 4 ){ //если сегодня четверг
if ( Hour() == 23 )  { //если - 23 часа терминального времени
if ( NumberOfPositions( NULL ,OP_BUY, Magic )== 0 ) { //если  нет открытых бай-позиций 
//если цена open 46 периода 30M четверга меньше цены open 46 периода 30M среды,
//а цена опен среды больше цены опен вторника,
//да ещё цена опен вторника больше цены опен понедельника,
if ( Close[ 1 ]<= Open[ 24 ] && Close[ 23 ]>=Open[ 48 ] && Close[ 47 ]>=Open[ 72 ]) {
//покупаем 
      SL= 0 ;TP= 0 ;
      if (StopLoss> 0 && StopLoss>StopLevel )    SL=Bid- Point *StopLoss;
      if (TakeProfit> 0 && TakeProfit>StopLevel) TP=Bid+ Point *TakeProfit;
      if (StopLoss  <StopLevel && StopLoss> 0 )   SL = Bid- Point *StopLevel; 
      if (TakeProfit<StopLevel && TakeProfit> 0 ) TP = Bid+ Point *StopLevel; 
   ticket= OrderSend ( Symbol (),OP_BUY,lots,Ask, 3 ,SL,TP, "Name_Expert" ,Magic, 0 ,clOpenBuy );
   if (ticket < 0 ) {
            Print ( "Ошибка открытия ордера BUY #" , GetLastError ()); 
            Sleep ( 10000 );  prevtime = Time[ 1 ];   return ( 0 ); 
                  } 
        }}}}
//================== конец блока открытия ==================================
 //================Закрытие позиций=====================================
if ( DayOfWeek()== 5  && Hour() == 23 ){ //если сегодня пятница, 23-00
//закрываем
 ClosePositions( NULL ,OP_BUY, Magic); }            
                  
//================== Конец блока закрытия  =============================
  return ( 0 );
  }
//ЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖ Конец функции int start() ЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖ 
 
 //ЖЖЖЖЖЖЖЖЖЖЖ ПОЛЬЗОВАТЕЛЬСКИК ФУНКЦИИ ЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖ

//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 01.09.2005                                                     |
//|  Описание : Возвращает наименование торговой операции                      |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    op - идентификатор торговой операции                                    |
//+----------------------------------------------------------------------------+
string GetNameOP( int op) {
  switch (op) {
    case OP_BUY      : return ( "Buy" );
    case OP_SELL     : return ( "Sell" );
    case OP_BUYLIMIT : return ( "BuyLimit" );
    case OP_SELLLIMIT: return ( "SellLimit" );
    case OP_BUYSTOP  : return ( "BuyStop" );
    case OP_SELLSTOP : return ( "SellStop" );
    default          : return ( "Unknown Operation" );
  }
}
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия  : 19.02.2008                                                      |
//|  Описание: Закрытие одной предварительно выбранной позиции                 |
//+----------------------------------------------------------------------------+
void ClosePosBySelect() {
  bool   fc;
  color  clClose;
  double ll, pa, pb, pp;
  int    err, it;

  if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
    for (it= 1 ; it<=NumberOfTry; it++) {
      if (!IsTesting() && (!IsExpertEnabled() || IsStopped ())) break ;
      while (!IsTradeAllowed()) Sleep ( 5000 );
      RefreshRates();
      pa=MarketInfo(OrderSymbol(), MODE_ASK);
      pb=MarketInfo(OrderSymbol(), MODE_BID);
      if (OrderType()==OP_BUY) {
        pp=pb; clClose=clCloseBuy;
      } else {
        pp=pa; clClose=clCloseSell;
      }
      ll=OrderLots();
      fc=OrderClose(OrderTicket(), ll, pp, Slippage, clClose);
      if (fc) {
        if (UseSound) PlaySound (SoundSuccess); break ;
      } else {
        err= GetLastError ();
        if (UseSound) PlaySound (SoundError);
        if (err== 146 ) while (IsTradeContextBusy()) Sleep ( 1000 * 11 );
        Print ( "Error(" ,err, ") Close " ,GetNameOP(OrderType()), " " ,
              ErrorDescription(err), ", try " ,it);
        Print (OrderTicket(), "  Ask=" ,pa, "  Bid=" ,pb, "  pp=" ,pp);
        Print ( "sy=" ,OrderSymbol(), "  ll=" ,ll, "  sl=" ,OrderStopLoss(),
              "  tp=" ,OrderTakeProfit(), "  mn=" ,OrderMagicNumber());
        Sleep ( 1000 * 5 );
      }
    }
  } else Print ( "Некорректная торговая операция. Close " ,GetNameOP(OrderType()));
}
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru/                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Закрытие позиций по рыночной цене                              |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
void ClosePositions( string sy= "" , int op=- 1 , int mn=- 1 ) {
  int i, k= OrdersTotal ();

  if (sy== "0" ) sy= Symbol ();
  for (i=k- 1 ; i>= 0 ; i--) {
    if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) {
      if ((OrderSymbol()==sy || sy== "" ) && (op< 0 || OrderType()==op)) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (mn< 0 || OrderMagicNumber()==mn) ClosePosBySelect();
        } } } } }

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает количество позиций.                                 |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
int NumberOfPositions( string sy= "" , int op=- 1 , int mn=- 1 ) {
  int i, k= OrdersTotal (), kp= 0 ;

  if (sy== "0" ) sy= Symbol ();
  for (i= 0 ; i<k; i++) {
    if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy || sy== "" ) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op< 0 || OrderType()==op) {
            if (mn< 0 || OrderMagicNumber()==mn) kp++;
          }}}}}  return (kp);}

 
leonid553 :

==================

4개의 오류가 없었습니다. 사용하지 않은 기능이 4개 있었습니다. 제거됨.

반복합니다. tf=n1 확인


사실, 예를 들어 적어도 자선 단체에 160 루블을 전송할 수있는 WMR을 보낼 수 있습니다.

작동하지 않는 유일한 것은 SELL 위치가 금요일 23:00에 마감된다는 것입니다. 그렇지 않으면 BUY만 마감되고 SELL은 3~4일 동안 수정되며 물론 s\l이 마감됩니다.

이러한 유로 및 파운드 데이터를 추가 조건으로 고려할 수 있습니까? 예측이 비대칭이 아닌 경우 В=ВВ 또는 Н=НН 반대 방향으로 구매해야 하므로 결과가 크게 향상됩니다.

하지만 이때 같은 파운드화와 유로화 데이터라면
EUR"화 아래로, 수요일 아래로, 목 아래로"
GBP "화요일, 수일화, 목화일"
그런 다음 "판매"가 아니라 "구매"를 엽니다.

수익성에 대해 말하자면, 부정확한 예측을 제거하면 금요일의 6개 예측 중 70개 거래만이 약 1500핍의 가치가 있습니다. 이것은 나머지 요일의 5배가 될 수 있으며, 보증금에 비례하는 제비는 2배 더 증가합니다. 아무리 많아도 손익분기점입니다. 나는 Leonid에게 문제 해결에 참여하는 160 EUR GBP CHF JPY 예측 테이블을 무료로 제공하고 WMR을 ale2715@yandex.ru로 보내고 회신 편지로 예측을 받고 고문을 쓰고 돈을 벌고 참여하지 마십시오. 그와 챔피언십, 나는 또한 그를 챔피언십에 연결할 것입니다.

 
lasso :

다음과 같이 시도하십시오.

음, 따라서 NumberOfPositions 및 ClosePositions 함수가 코드에 있어야 합니다.


고마워, 우리는 지금 이 방향을 떠날거야
 
Profitabl :

작동하지 않는 유일한 것은 SELL 위치가 금요일 23:00에 마감된다는 것입니다. 그렇지 않으면 BUY만 마감되고 SELL은 3~4일 동안 수정되며 물론 s\l이 마감됩니다.

그리고 그것은 사실입니다...)))

이렇게 되어야 한다

 //================Закрытие позиций=====================================
if ( DayOfWeek()== 5   && Hour() == 23 ){ //если сегодня пятница, 23-00
//закрываем
 ClosePositions( NULL , -1 , Magic); }            
                  
//================== Конец блока закрытия  =============================
   return ( 0 );
  }
//ЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖ Конец функции int start() ЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖ 
 

코드에서 Sell 포지션이 열릴 것이라고는 전혀 예상하지 못했습니다. 작업에서 - 처음에는 프랑에 대한 구매를 여는 것에 관한 것이었습니다.

//-----------

예, 닫는 부분을 약간 변경해야 합니다. - ClosePositions(NULL,-1, Magic)

 
leonid553 :

4개의 오류가 없었습니다. 사용하지 않은 기능이 4개 있었습니다. 제거됨.

반복합니다. tf=n1 확인

자세히 살펴보니 다음과 같은 내용이 있었습니다.

1) 조건이 서로 모순됨

 //если цена open 46 периода 30M четверга меньше цены open 46 периода 30M среды,
// а цена опен среды больше цены опен вторника ,
//да ещё цена опен вторника больше цены опен понедельника,
if ( Close[ 1 ]<= Open[ 24 ] && Close[ 23 ] >=Open[ 48 ] && Close[ 47 ]>=Open[ 72 ]) {
//покупаем 


2) 시계열 호출(예: Open[48] )은 백테스트 시 완전히 정확하지 않습니다. 구멍은 역사에서 꽤 가능합니다. 즉, 가격이 잘못된 막대에서 가져옴을 의미합니다.


3) 클로징 조건

 //================Закрытие позиций=====================================
if ( DayOfWeek()== 5   && Hour() == 23 ){ //если сегодня пятница, 23-00
//закрываем

보편적이지 않기 때문에 예: DC Al ... 금요일에는 시간 값이 23인 막대가 없습니다.


4) 몇 가지 사소한 뉘앙스가 더 있지만 동시에 결과 균형 곡선에 미치는 영향은 결코 작지 않습니다 ....))


// zhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhi


저를 정확히 이해해주세요. 이 게시물은 결코 leonid553 에 대한 주장이 아닙니다. (레오니드 - 존경과 존경!!!)


물론 "5분 안에 청록색, Chirk 스크립트"라고 말할 수 있습니다. 그러나 연습은 단순한 TK가 없다는 것을 보여줍니다.

모든 매개 변수의 경계 값, 디버깅, "오류 트랩" 설정 등을 확인해야 하는 모든 곳.

그리고 어떤 종류의 "스크립트"가 아니라 가치 있는 작은 제품으로 끝나기 위해서는 많은 시간이 필요합니다. 불행히도.

 

고문은 이미 실제 거래를 하고 있습니다. 오늘 처음 두 거래는 23시에 열렸습니다. 이제 내일 거래가 어떻게 마감될지 궁금합니다. 참여해주셔서 감사합니다.

그러나 이 표에서 "I"로 표시된 화요일 예측에 대한 Expert Advisor의 테스트 결과는 발음 신호이며, 이들에 대한 거래만 방법 B이며, 그 결과는 맨 오른쪽 열에 있으며 모든 결과는 핍 단위입니다.

예를 들어 화요일 CHF 어드바이저에 BBB, BNN, HVH만 남겨두고 보증금에 비례하여 랏을 늘리는 기능을 추가했는데, 보증금의 10%로 매수했을 때의 테스트 결과는 55손실에서 180%로, 수익성있는 거래이며 20 %로 구매할 때 이익은 450 %입니다. 당신은 붉은 왕겨에서 곡물을 청소하고 고문에게 "c"로 표시된 신호를 비대칭 쌍의 상충되는 예측으로 변경하도록 가르치고 추가된 로트를 줄이지 않고 4가지 통화를 동시에 거래하고 "감독과 친숙합니다. 외환." 이 세 가지 문제를 해결하고 이 Expert Advisor를 얻는 것으로 충분합니다. 그것으로 챔피언십에 참가하지 마십시오. 내 분석이 내 이름을 영광스럽게 합니다.

160개 중 단 3개 예측에서 27.01.08부터 450%, 1H당 CHF를 확인하십시오. 심지어 830%가 있었는데 고문이 제비를 늘리기만 했다면 훨씬 더 많이 남아 있었을 것입니다.

파일:
450_2.rar  20 kb
 

말이 없다 ... 성배 . 이전에는 어떻게 눈치채지 못했는가?

 
lasso :

자세히 살펴보니 다음과 같은 내용이 있었습니다.

......

저를 정확히 이해해주세요. 이 글은 클레임이 아닙니다 . . . . . . . .

예, 코드 작성의 정확성을 가장하지 않습니다. 나는 특별히 거기에 주목했습니다. 제가 작성한 코드는 단지 공백일 뿐입니다.

나는 아마도 일반적인 용어를 제외하고는 전술의 미묘함에 대해 아직 깊이 파고들지 않았다. 그러나 이미 지금 나는 전술이 Pts를 받을 자격이 있다고 생각합니다. 진지한 관심. 나는 주로 계절 상품 거래에 종사하고 있기 때문에 여기에 전망이 있다고 생각합니다. 왜냐하면 여기 - 사실 동일한 "준 계절적 거래"이지만 단기적으로는 다음과 같습니다.

" 트렌드 체크:
은을 예로 들어보자. 18:00부터 19:00까지 시간당 촛불은 70% 이상의 경우에서 다음 23시간 동안의 가격 움직임과 방향이 일치했으며, 이는 다른 금속의 경우 일반적입니다. 그리고 이것은 지난 50일, 40일, 30일, 20일, 10일 동안 일어났습니다. 그래서 19시간 후에 우리는 이 양초 방향으로 주문을 합니다....
"(s, - BR forum.)

게다가, 아주 우연히, 나는 - 어제(위의 인용문 참조)보다 늦지 않은 - 발견 - 잘 알려진 지난 월간 데모 콘테스트가 그러한 (글쎄, 거의 "일대일") 전술로 이루어졌다는 것을 발견했습니다. DC BR이 이겼습니다. $5000의 상금과 함께.

그리고 현재 9월 콘테스트에서 선물을 거래하는 참가자는 이 방법을 사용하여 이달 초부터 1000포인트 이상의 이익을 얻었습니다. (데모 콘테스트의 규칙은 매우 엄격합니다. 참가자는 포럼에 참가할 때 각 거래를 설명해야 하며 각 거래의 위험(스톱로스)은 -200달러를 초과해서는 안 됩니다. 그렇지 않으면 실격됩니다. .)

따라서 NorthAlec , 당신은 아마도 헛된 아이러니 일 것입니다.

사유: