Kodlama yardımı - sayfa 657

 

Sevgili arkadaşlar,

Bu ea bazen farklı çiftler üzerinde çalışıyor mu?

Örneğin: bir süre çalışan EURUSD + GBPUSD vb.

Teşekkür ederim...

Dosyalar:
 
oguz :

Sevgili arkadaşlar,

Bu ea bazen farklı çiftler üzerinde çalışıyor mu?

Örneğin: bir süre çalışan EURUSD + GBPUSD vb.

Teşekkür ederim...

Farklı sihirli sayılarla farklı çizelgelere ekleyin ve sorunsuz çalışması gerekir. Aksi takdirde, koda bakılırsa, büyük bir karışıklık yaşayabilirsiniz.
 
mladen :
Farklı sihirli sayılarla farklı çizelgelere ekleyin ve iyi çalışması gerekir. Aksi takdirde, koda bakılırsa, büyük bir karışıklık yaşayabilirsiniz.

çok detaylı bilgi teşekkürler.

Bu arada herhangi bir sayıyı sihirli sayı olarak ekleyebilir miyiz?

Varsayılan Sihirli Numarası: "288"

Ekleyebilir miyim: 398, 477, 501, 875 vb.

 

Sevgili Mladen,

Koda yakın zıt sinyali nasıl ekleyebileceğimi öğrenebilir miyim?

 extern bool oppositeSignalclose= true ;


denedim ama her barda kapanıyor.


"Sipariş Gönderildi" için neleri değiştirmem gerektiğini görmeme yardımcı olabilir misiniz, satın aldıktan sonra tüm satışları kapat / satıştan sonra tüm alımları kapat.

Teşekkür ederim .

   // 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 :

Sevgili Mladen,

Koda yakın zıt sinyali nasıl ekleyebileceğimi öğrenebilir miyim?


denedim ama her barda kapanıyor.


"Sipariş Gönderildi" için neleri değiştirmem gerektiğini görmeme yardımcı olabilir misiniz, satın aldıktan sonra tüm satışları kapat / satıştan sonra tüm alımları kapat.

Teşekkür ederim .

TersSignalclose true olarak ayarlanmışsa (yani, bunun gibi bir şey) çağrıyı CountOfOrders'a çevirin:

if (oppositeSignalclose)
      TotalBuyOrders = CountOfOrders(MagicNumberBuy);
else  TotalBuyOrders = CountOfOrders(MagicNumberSell);
Aynısını satış emirleri için de yapın
 
mladen :

TersSignalclose true olarak ayarlandıysa (yani, bunun gibi bir şey) çağrıyı CountOfOrders'a çevirin:

Aynısını satış emirleri için de yapın

Bu bir ters ticaret mi?

Zıt sinyal olduğunda mevcut ticaretin kapanmasını istiyorum.

Nette kodlardan birini buluyorum ama her çubukta kapanıyor.

Kontrol etmeme yardım edebilir misin, doğru yolu veya istediğim farklı şeyleri ekledim mi?

Ve mum bitiyor, geçen hafta bana öğrettiğin şeyi yaptım ama hala çalışamıyorum.

 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);
         }
      }
   }
}
Dosyalar:
BbandTest.mq4  37 kb
 
stevenpun :

Bu bir ters ticaret mi?

Zıt sinyal olduğunda mevcut ticaretin kapanmasını istiyorum.

Nette kodlardan birini buldum ama her çubukta kapanıyor.

Kontrol etmeme yardım edebilir misin, doğru yolu veya istediğim farklı şeyleri ekledim mi?

Ve mum bitiyor, geçen hafta bana öğrettiğin şeyi yaptım ama hala çalışamıyorum.

Gördüğüm kadarıyla bu doğru olmalı
 

Lütfen bana .csv'ye dışa aktarma göstergelerinin kodu konusunda yardım edin
Sadece bir gösterge yazmaya izin verir ...

OHLC'den sonra birden çok veri sütununu dışa aktarmak için ne düzeltilmeli?

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

//|                                                  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 :

Lütfen bana .csv'ye dışa aktarma göstergelerinin kodu konusunda yardım edin
Sadece bir gösterge yazmaya izin verir ...

OHLC'den sonra birden çok veri sütununu dışa aktarmak için ne düzeltilmeli?

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

//|                                                  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);

  }

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

Dışa aktarılmasını istediğiniz verileri FileWrite() işlev parametrelerine eklemeniz yeterlidir.
 
mladen :
Gördüğüm kadarıyla bu doğru olmalı

Zıt kapatma işlevini çözdüm :>

Ama boş olduğunda mumun durduğu yeri kontrol etmene yardım edebilir misin, hala çözemiyorum :(