Jump to content


[01 martie 2015] Vamist este prima si cea mai mare comunitate Forex din Romania. A luat nastere in 2005 si de-a lungul timpului a trecut prin mai multe transformari. Acum, dupa 10 ani, primim orice fel de traderi si investitori. Deci, indiferent daca tranzactionezi sau investesti in actiuni, valute, marfuri sau orice alt instrument, bine ai venit!

Vamist se transforma in comunitatea traderilor retail. Aceasta versiune a forumului va fi in continuare accesibila pentru oricine, dar numai in format read only.

Noua adresa este vamist.ro. Te asteptam acolo la discutii generale despre trading.

Photo
* * * * * 1 votes

Inchidere ordin la o anumita ora si minut


  • Please log in to reply
7 replies to this topic

#1 Apollo

Apollo

    Big Shark

  • Banned
  • PipPipPipPipPipPipPipPipPip
  • 1382 posts
  • Gender:Male
  • Location:In munti...
  • Broker curent LMAX

Posted 30 August 2013 - 06:30 PM

Am si eu nevoie de un timer care sa il activez dupa ce am lansat ordinul iar la o anumita ora si minut sa imi inchida complet ca si cum l-as inchide eu manual. Am cautat pe google si nu am gasit ce as vrea eu, totusi am dat peste un cod si nu ma pricep deloc sa-l introduc sau sa-l interpretez.

 

Vrea cineva sa ajute?

 
extern int MaxHours=3; 
int YOUR_MAGIC_NUMBER_VARIABLE_HERE=298374; 

//+------------------------------------------------------------------+ 
//| expert initialization function                                   | 
//+------------------------------------------------------------------+ 
int init() 
  { 
//---- 
    
//---- 
   return(0); 
  } 
//+------------------------------------------------------------------+ 
//| expert deinitialization function                                 | 
//+------------------------------------------------------------------+ 
int deinit() 
  { 
//---- 
    
//---- 
   return(0); 
  } 
   

void AfterHours(){ 
   for(int i=0;i<OrdersTotal();i++){ 
      if(OrderSelect(i,SELECT_BY_POS)){ 
         if(OrderSymbol()==Symbol() && OrderMagicNumber()== YOUR_MAGIC_NUMBER_VARIABLE_HERE){ 
            if(CurTime() - OrderOpenTime() > MaxHours * (60 * 60) ){ 
               if(OrderType()==OP_BUY){ 
                  OrderClose(OrderTicket(),OrderLots(),Bid,2,Red); 
               } 
               if(OrderType()==OP_SELL){  
                  OrderClose(OrderTicket(),OrderLots(),Ask,2,Red); 
               } 
            } 
         } 
      } 
   } 
} 
//+------------------------------------------------------------------+ 
//| expert start function                                            | 
//+------------------------------------------------------------------+ 
int start() 
  { 
//---- 
   AfterHours(); 
//---- 
   return(0); 
  }  
 

Edited by Apollo, 30 August 2013 - 06:30 PM.

"Imposibilul e un cuvant care se gaseste numai in dictionarul nãtângilor."

"Remember that if you practice strict money management rules, you will become the casino and in the long run, "you will always win."

 

"If you have ever watched one  of the nature programs  on television  about how many species of fish hunt, you may  have seen  the larger fish that create "bait balls"  by coralling  smaller fish into a tight group."

 

Money moves the market, not an indicator.




#2 theSeer

theSeer

    Forexist activ

  • Members
  • PipPipPipPipPip
  • 122 posts
  • Gender:Male
  • Location:Bucuresti
  • Interests:Broker certificat CCIR din 1996
  • Broker curent Oanda
  • Strategie/tehnica folosita Modelarea matematica

Posted 30 August 2013 - 09:40 PM

Ipoteza necesara : la inserarea unui ordin, MagicNumber-ul ordinului trebuie sa fie setat cu data si timpul de expirare.

 

EA-ul verifica la fiecare schimbare de minut daca a expirat vreun ordin. Verifica/compara TimeCurrent (ora brokerului) cu MagicNumber-ul ordinului. Se poate modifica, sa verifice/compare TimeLocal (ora Romaniei) cu MagicNumber-ul ordinului.

 

PS. Am lasat ca model (EA-ul NU le foloseste, liniile raman comentate) :

#property show_inputs // pentru introducerea MagicNumber-ului la inserarea ordinului

extern datetime MagicNumber = D'2013.08.31 00:00'; // valoarea default care se modifica cu valoarea dorita pentru expirare, in momentul lansarii scriptului care insereaza ordinul, ordin ce transmite la broker si acest MagicNumber .

Attached Files


Edited by theSeer, 30 August 2013 - 11:13 PM.


#3 Apollo

Apollo

    Big Shark

  • Banned
  • PipPipPipPipPipPipPipPipPip
  • 1382 posts
  • Gender:Male
  • Location:In munti...
  • Broker curent LMAX

Posted 31 August 2013 - 07:00 AM

gj.jpg

 

 

Dar nu se poate introduce o variabila in el ? Sa nu mai intru in editor de fiecare data sa pun ? 


Edited by Apollo, 31 August 2013 - 07:14 AM.

"Imposibilul e un cuvant care se gaseste numai in dictionarul nãtângilor."

"Remember that if you practice strict money management rules, you will become the casino and in the long run, "you will always win."

 

"If you have ever watched one  of the nature programs  on television  about how many species of fish hunt, you may  have seen  the larger fish that create "bait balls"  by coralling  smaller fish into a tight group."

 

Money moves the market, not an indicator.


#4 theSeer

theSeer

    Forexist activ

  • Members
  • PipPipPipPipPip
  • 122 posts
  • Gender:Male
  • Location:Bucuresti
  • Interests:Broker certificat CCIR din 1996
  • Broker curent Oanda
  • Strategie/tehnica folosita Modelarea matematica

Posted 31 August 2013 - 07:35 AM

Valoarea default D'2013.08.31 00:00' a variabilei MagicNumber-ului daca e OK pentru toate ordinele, atunci NU trebuie modificata de fiecare data cand se da rand pe rand OrderSend (se comenteaza //#property show_inputs), insa NU trebuie uitat sa fie completat mereu acest parametru MagicNumber.

 

int OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int MagicNumber=0, datetime expiration=0, color arrow_color=CLR_NONE)

 

Daca la transmiterea ordinelor NU este completat deloc MagicNumber (MagicNumber=0), EA-ul considera data si timpul de expirare ca fiind '1970 00:00' si va sterge toate ordinele deschise care au MagicNumber=0. Daca NU se doreste aceasta comportare, se modifica conditia if( TimeCurrent() >= iMagicNumber ) in conditia if( iMagicNumber > 0 && TimeCurrent() >= iMagicNumber ), caz in care ordinele deschise care au MagicNumber=0 vor fi ignorate de EA, MagicNumber=0 nemaiputand fi modificat ulterior transmiterii ordinelor cu OrderSend(...,MagicNumber,...).


Edited by theSeer, 31 August 2013 - 07:53 AM.


#5 Apollo

Apollo

    Big Shark

  • Banned
  • PipPipPipPipPipPipPipPipPip
  • 1382 posts
  • Gender:Male
  • Location:In munti...
  • Broker curent LMAX

Posted 31 August 2013 - 08:53 AM

Ihi. Multumesc de explicatii, dar nu e ce cautam din pacate. 


"Imposibilul e un cuvant care se gaseste numai in dictionarul nãtângilor."

"Remember that if you practice strict money management rules, you will become the casino and in the long run, "you will always win."

 

"If you have ever watched one  of the nature programs  on television  about how many species of fish hunt, you may  have seen  the larger fish that create "bait balls"  by coralling  smaller fish into a tight group."

 

Money moves the market, not an indicator.


#6 theSeer

theSeer

    Forexist activ

  • Members
  • PipPipPipPipPip
  • 122 posts
  • Gender:Male
  • Location:Bucuresti
  • Interests:Broker certificat CCIR din 1996
  • Broker curent Oanda
  • Strategie/tehnica folosita Modelarea matematica

Posted 31 August 2013 - 10:32 AM

Am modificat EA-ul exact dupa cerintele initiale. Am introdus variabila ExpiryDateTime cu valoarea default D'1970.01.01 00:00', valoare default care va fi ignorata. Variabila ExpiryDateTime poate fi modificata oricand in timpul executiei EA-ului. Se vor sterge automat la data si ora indicata de ExpiryDateTime toate ordinele care sunt deschise pe piata. Astea sunt cerintele initiale, presupun... (implementarea anterioara era forma generalizata pentru data si ora de expirare, specificata in momentul introducerii ordinului pe piata, o implementare mq4 a ordinului de tip GoodTillDate)

 

Valoarea default a variabilei ExpiryDateTime se modifica oricand, astfel : apasare tasta F7 >> Tab Inputs >> Variable ExpiryDateTime >> Value, completandu-se data si ora de expirare dorita pentru ordinele deschise pe piata sau care vor fi deschise in viitor pe piata, anterior momentului indicat de ExpiryDateTime.

Attached Files


Edited by theSeer, 31 August 2013 - 10:52 AM.


#7 Apollo

Apollo

    Big Shark

  • Banned
  • PipPipPipPipPipPipPipPipPip
  • 1382 posts
  • Gender:Male
  • Location:In munti...
  • Broker curent LMAX

Posted 31 August 2013 - 11:11 AM

great-job.jpg


"Imposibilul e un cuvant care se gaseste numai in dictionarul nãtângilor."

"Remember that if you practice strict money management rules, you will become the casino and in the long run, "you will always win."

 

"If you have ever watched one  of the nature programs  on television  about how many species of fish hunt, you may  have seen  the larger fish that create "bait balls"  by coralling  smaller fish into a tight group."

 

Money moves the market, not an indicator.


#8 theSeer

theSeer

    Forexist activ

  • Members
  • PipPipPipPipPip
  • 122 posts
  • Gender:Male
  • Location:Bucuresti
  • Interests:Broker certificat CCIR din 1996
  • Broker curent Oanda
  • Strategie/tehnica folosita Modelarea matematica

Posted 31 August 2013 - 11:39 AM

Versiunea 1.1 introduce o noua variabila ServerTime setata default cu true pentru cazul EpiryDateTime sa fie raportat la TimeCurrent (ora brokerului) ; se pune false pentru cazul EpiryDateTime sa fie raportat la TimeLocal (ora României, ora de pe calculatorul personal). (e de preferat variabila asta booleana in locul unei variabile numerice GMT_offset)

Attached Files


Edited by theSeer, 31 August 2013 - 11:47 AM.





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users

Tranzactiile forex implica un grad ridicat de risc. Informatiile de pe acest site NU reprezinta recomadari de tranzactionare sau investitii.
Administratorii vamist.ro nu-si asuma responsabilitatea pentru eventualele probleme sau pierderi materiale aparute in urma utilizarii informatiilor de pe site.