konkurs BossaFX

O jezykach programowania w platformach i nie tylko.
bialy
Stały bywalec
Stały bywalec
Posty: 54
Rejestracja: 16 maja 2011, 20:41

konkurs BossaFX

Nieprzeczytany post autor: bialy »

dla zainteresowanych konkursem

skrypt tworzy linie srednia dla wielu pozycji w jednym kierunku /w BOŚ nie mozna hedge'owac/ formuly uzywam w automatach i konkursach, bo klikanie na kalkulatorze mnie rozpraszalo. w konkursie BOŚ nie mozna uzywac automatow, nawet takich co pilnuja pozycji. wrzucam skrypt, ktory tylko obliczy poziom wejscia dla wielu pozycji. prosty i przejrzysty. jesli zaznaczycie we wlasciwosciach okna /F8/ "Pokaz Opis Obiektu" srednia wejscia bedzie opisana na utworzonej linii

Kod: Zaznacz cały

int start() {
   ObjectDelete("SELL AVG");
   ObjectDelete("BUY AVG");
   double BuyOpenPrice,SellOpenPrice;
   double BuyLots,SellLots;
   for(int i=0; i<OrdersTotal(); i++) {
      if(OrderSelect(i,SELECT_BY_POS, MODE_TRADES)) {
         if(OrderSymbol()==Symbol()) {
            if(OrderType()==OP_BUY) {
               BuyOpenPrice += OrderOpenPrice()*OrderLots();
               BuyLots += OrderLots();
            }
            if(OrderType()==OP_SELL) {
               SellOpenPrice += OrderOpenPrice()*OrderLots();
               SellLots += OrderLots();
            }
         }
      }
   }
   for(i=0; i<OrdersTotal(); i++) {
      if(OrderSelect(i,SELECT_BY_POS, MODE_TRADES)) {
         if(OrderSymbol()==Symbol()) {
            if(OrderType()==OP_BUY) {
               ObjectCreate("BUY AVG",OBJ_HLINE,0,0,NormalizeDouble(BuyOpenPrice/BuyLots,Digits));
               ObjectSet("BUY AVG",OBJPROP_PRICE1,NormalizeDouble(BuyOpenPrice/BuyLots,Digits));
               ObjectSet("BUY AVG",OBJPROP_STYLE,STYLE_DASHDOT);
               ObjectSet("BUY AVG",OBJPROP_COLOR,Green);
               ObjectSet("BUY AVG",OBJPROP_BACK,True);
               ObjectSetText("BUY AVG",DoubleToStr(NormalizeDouble(BuyOpenPrice/BuyLots,Digits),Digits),0,"",0);
            }
            if(OrderType()==OP_SELL) {
               ObjectCreate("SELL AVG",OBJ_HLINE,0,0,NormalizeDouble(SellOpenPrice/SellLots,Digits));
               ObjectSet("SELL AVG",OBJPROP_PRICE1,NormalizeDouble(SellOpenPrice/SellLots,Digits));
               ObjectSet("SELL AVG",OBJPROP_STYLE,STYLE_DASHDOT);
               ObjectSet("SELL AVG",OBJPROP_COLOR,Green);
               ObjectSet("SELL AVG",OBJPROP_BACK,True);
               ObjectSetText("SELL AVG",DoubleToStr(NormalizeDouble(SellOpenPrice/SellLots,Digits),Digits),0,"",0);
            }
         }
      }
   }
   return(0);
}
PS.skonczyly mi sie pomysly co do automatow/wskaznikow. chetnie zajme sie czyms ciekawym :roll:
PS2 a tak na marginesie. nie reklamuje konkursu i nie jestem pracownikiem. po prostu wrzucam cos co ulatwi granie,a moze przyda sie komus gdzies. PZDR
oszczedzajmy cykle procesora

ODPOWIEDZ