코딩 도움말 - 페이지 657

 

친애하는 친구,

이 ea는 때때로 다른 쌍에서 작동합니까?

예: EURUSD + GBPUSD 등을 작동하는 시간에.

고맙습니다...

파일:
 
oguz :

친애하는 친구,

이 ea는 때때로 다른 쌍에서 작동합니까?

예: EURUSD + GBPUSD 등을 작동하는 시간에.

고맙습니다...

매직 넘버가 다른 다른 차트에 첨부하면 정상적으로 작동합니다. 그렇지 않으면 코드로 판단하면 큰 혼란을 일으킬 수 있습니다.
 
mladen :
매직 넘버가 다른 다른 차트에 첨부하면 정상적으로 작동합니다. 그렇지 않으면 코드로 판단하면 큰 혼란을 일으킬 수 있습니다.

상세한 정보 정말 감사합니다.

그건 그렇고 우리는 어떤 숫자를 매직 넘버로 붙일 수 있습니까?

기본 매직 번호는 "288"입니다.

398, 477, 501, 875 등으로 부착할 수 있습니까?

 

친애하는 믈라덴,

코드에 반대 신호를 추가하는 방법을 알 수 있습니까?

 extern bool oppositeSignalclose= true ;


나는 그것을 시도했지만 모든 바에서 닫힙니다.


"OrderSended" 구매 후 모든 판매 닫기/판매 후 모든 구매 닫기에 대해 무엇을 변경해야 하는지 알려줄 수 있습니까?

고맙습니다 .

   // New buy orders
  TotalBuyOrders = CountOfOrders(MagicNumberBuy);
   if (TotalBuyOrders > 0 && TotalBuyOrders < MaxTrades)
  {
    OrderSended = - 1 ;
    LastSellPrice = FindLastOrderParameter(MagicNumberBuy, "price" );

     if (LastSellPrice - Ask >= GetPipstepForStep(TotalBuyOrders + 1 ) * vPoint)
    {
      BLot   = GetLotForStep(MagicNumberBuy, TotalBuyOrders);
      BComment = StringSubstr (LastOrderComment, 0 , StringFind (LastOrderComment, "|" , 0 )) + "|" ;
      OrderSended = SendMarketOrder( OP_BUY , BLot, 0 , 0 , MagicNumberBuy, BComment);
    }
  }
   // New sell orders
  TotalSellOrders = CountOfOrders(MagicNumberSell);
   if (TotalSellOrders > 0 && TotalSellOrders < MaxTrades)
  {
    OrderSended = - 1 ;
    LastBuyPrice = FindLastOrderParameter(MagicNumberSell, "price" );

     if ( Bid - LastBuyPrice >= GetPipstepForStep(TotalSellOrders + 1 ) * vPoint) 
    {
      SLot   = GetLotForStep(MagicNumberSell, TotalSellOrders);
      SComment = StringSubstr (LastOrderComment, 0 , StringFind (LastOrderComment, "|" , 0 )) + "|" ;
      OrderSended = SendMarketOrder( OP_SELL , SLot, 0 , 0 , MagicNumberSell, SComment);
    }
  }
 
stevenpun :

친애하는 믈라덴,

코드에 반대 신호를 추가하는 방법을 알 수 있습니까?


나는 그것을 시도했지만 모든 바에서 닫힙니다.


"OrderSended" 구매 후 모든 판매 닫기/판매 후 모든 구매 닫기에 대해 무엇을 변경해야 하는지 알려줄 수 있습니까?

고맙습니다 .

reverseSignalclose가 true로 설정된 경우 CountOfOrders에 대한 호출을 반전합니다(예: 다음과 같이).

if (oppositeSignalclose)
      TotalBuyOrders = CountOfOrders(MagicNumberBuy);
else  TotalBuyOrders = CountOfOrders(MagicNumberSell);
그리고 매도 주문 도 똑같이 하세요
 
mladen :

reverseSignalclose가 true로 설정된 경우 CountOfOrders에 대한 호출을 반전합니다(예: 다음과 같이).

그리고 매도 주문도 똑같이 하세요

이것은 역거래입니까?

반대 신호일 때 현재 거래를 마감하고 싶습니다.

그물에서 코드 중 하나를 찾았지만 각 막대에서 닫힙니다.

내가 원하는 올바른 방법이나 다른 것을 삽입했는지 확인 하는 데 도움을 줄 수 있습니까?

그리고 촛불 후행 중지 , 나는 당신 이 지난 주 에 가르쳐 준 것을 했으나 여전히 작동 하지 않습니다 .

 extern bool oppositeclose= true ;
 if ((oppositeclose && sell))closebuy();
if ((oppositeclose && buy))closesell();
 //|---------close

void closebuy(){
   RefreshRates ();
   if ( OrdersTotal ()> 0 ){
       for ( int i= OrdersTotal ();i>= 0 ;i--){
         OrderSelect (i, SELECT_BY_POS , MODE_TRADES );
         if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==magic && OrderType ()== OP_BUY ){
             OrderClose ( OrderTicket (), OrderLots (), Bid ,slippage*mt);
         }
      }
   }
}

void closesell(){
   RefreshRates ();
   if ( OrdersTotal ()> 0 ){
       for ( int i= OrdersTotal ();i>= 0 ;i--){
         OrderSelect (i, SELECT_BY_POS , MODE_TRADES );
         if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==magic && OrderType ()== OP_SELL ){
             OrderClose ( OrderTicket (), OrderLots (), Ask ,slippage*mt);
         }
      }
   }
}
파일:
BbandTest.mq4  37 kb
 
stevenpun :

이것은 역거래입니까?

반대 신호일 때 현재 거래를 마감하고 싶습니다.

그물에서 코드 중 하나를 찾았지만 각 막대에서 닫힙니다.

내가 원하는 올바른 방법이나 다른 것을 삽입했는지 확인하는 데 도움을 줄 수 있습니까?

그리고 촛불 후행 중지 , 나는 당신 이 지난 주 에 가르쳐 준 것을 했으나 여전히 작동 하지 않습니다 .

내가 보기에는 그것이 맞아야 한다.
 

.csv로 내보내기 표시기의 코드를 도와주세요.
하나의 지표만 쓸 수 있습니다...

OHLC .. 후 여러 데이터 열을 내보내려면 무엇을 수정해야합니까?

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

//|                                                  RSI_to_File.mq4 |

//|                      Copyright © 2007, MetaQuotes Software Corp. |

//|                                        [url]http://www.metaquotes.ru/[/url] |

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

#property copyright "Copyright © 2007, MetaQuotes Software Corp."

#property link      "http://www.metaquotes.ru/"


#property show_inputs

string SymbolsArray[13]={"","GBPUSD","EURUSD"};


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

//| string SymbolByNumber                                   |

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

string GetSymbolString(int Number)

  {

//----

   string res="";

   res=SymbolsArray[Number];   

//----

   return(res);

  }


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

//| возвращает период                                                |

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

int PeriodNumber(int number)

   {

   int per_min;

   switch (number)

      {

      default: per_min=PERIOD_M1;break;

      case 1: per_min=PERIOD_M5;break;

      case 2: per_min=PERIOD_M12;break;

      }

   return(per_min);   

   }


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

//|   выводит в файл котировки + значения индикатора                 |

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

void IFT_output(string SymbolName,int PeriodMinutes)

   {

   int size=iBars(SymbolName,PeriodMinutes);

//----

   if (size==0) return;

   int handle=FileOpen(SymbolName+PeriodMinutes+"_IFT.csv",FILE_WRITE|FILE_CSV);

   if (handle<0) return;

   FileWrite(handle,"Time seconds;Time;Open;Low;High;Close;Volume;IFT");

   for (int i=size-1;i>=0;i--)

      {

      FileWrite(handle,iTime(SymbolName,PeriodMinutes,i),TimeToStr(iTime(SymbolName,PeriodMinutes,i))

         ,iOpen(SymbolName,PeriodMinutes,i),iLow(SymbolName,PeriodMinutes,i),iHigh(SymbolName,PeriodMinutes,i)

         ,iClose(SymbolName,PeriodMinutes,i),iVolume(SymbolName,PeriodMinutes,i),iCustom(SymbolName,PeriodMinutes,"IFT",0,i));

      }

   FileClose(handle);      

//----

   return;

   }

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

//| script program start function                                    |

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

int start()

  {

  int SymbolCounter,PeriodCounter; 

//----

   for (SymbolCounter=1;SymbolCounter<13;SymbolCounter++)

      {

      for (PeriodCounter=2;PeriodCounter<=6;PeriodCounter++)

         {

         //Print("NewBar on ",GetSymbolString(SymbolCounter),PeriodNumber(PeriodCounter),"M");

         IFT_output(GetSymbolString(SymbolCounter),PeriodNumber(PeriodCounter));

         }

      }

   

//----

   return(0);

  }

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

 
kostumer27 :

.csv로 내보내기 표시기의 코드를 도와주세요.
하나의 지표만 쓸 수 있습니다...

OHLC .. 후 여러 데이터 열을 내보내려면 무엇을 수정해야합니까?

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

//|                                                  RSI_to_File.mq4 |

//|                      Copyright © 2007, MetaQuotes Software Corp. |

//|                                        [url]http://www.metaquotes.ru/[/url] |

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

#property copyright "Copyright © 2007, MetaQuotes Software Corp."

#property link      "http://www.metaquotes.ru/"


#property show_inputs

string SymbolsArray[13]={"","GBPUSD","EURUSD"};


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

//| string SymbolByNumber                                   |

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

string GetSymbolString(int Number)

  {

//----

   string res="";

   res=SymbolsArray[Number];   

//----

   return(res);

  }


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

//| возвращает период                                                |

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

int PeriodNumber(int number)

   {

   int per_min;

   switch (number)

      {

      default: per_min=PERIOD_M1;break;

      case 1: per_min=PERIOD_M5;break;

      case 2: per_min=PERIOD_M12;break;

      }

   return(per_min);   

   }


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

//|   выводит в файл котировки + значения индикатора                 |

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

void IFT_output(string SymbolName,int PeriodMinutes)

   {

   int size=iBars(SymbolName,PeriodMinutes);

//----

   if (size==0) return;

   int handle=FileOpen(SymbolName+PeriodMinutes+"_IFT.csv",FILE_WRITE|FILE_CSV);

   if (handle<0) return;

   FileWrite(handle,"Time seconds;Time;Open;Low;High;Close;Volume;IFT");

   for (int i=size-1;i>=0;i--)

      {

      FileWrite(handle,iTime(SymbolName,PeriodMinutes,i),TimeToStr(iTime(SymbolName,PeriodMinutes,i))

         ,iOpen(SymbolName,PeriodMinutes,i),iLow(SymbolName,PeriodMinutes,i),iHigh(SymbolName,PeriodMinutes,i)

         ,iClose(SymbolName,PeriodMinutes,i),iVolume(SymbolName,PeriodMinutes,i),iCustom(SymbolName,PeriodMinutes,"IFT",0,i));

      }

   FileClose(handle);      

//----

   return;

   }

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

//| script program start function                                    |

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

int start()

  {

  int SymbolCounter,PeriodCounter; 

//----

   for (SymbolCounter=1;SymbolCounter<13;SymbolCounter++)

      {

      for (PeriodCounter=2;PeriodCounter<=6;PeriodCounter++)

         {

         //Print("NewBar on ",GetSymbolString(SymbolCounter),PeriodNumber(PeriodCounter),"M");

         IFT_output(GetSymbolString(SymbolCounter),PeriodNumber(PeriodCounter));

         }

      }

   

//----

   return(0);

  }

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

FileWrite() 함수 매개변수에 내보내려는 데이터를 추가하기만 하면 됩니다.
 
mladen :
내가 보기에는 그것이 맞아야 한다.

나는 반대 닫기 기능 을 해결했습니다 :>

그러나 당신이 자유로울 때 촛불 후행 중지를 확인하는 데 도움을 줄 수 있습니까? 나는 여전히 그것을 해결할 수 없습니다 :(