[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 179

 
Rustbunch:

EAやスクリプトを探すのを手伝ってください、きっと用意されているはずです...。

マーケットで一定の時間に一定の損切りと利益で取引を行うEAが欲しい。それ以外のものは必要ないのですが...。

よろしくお願いします。

どんなExpert Advisorでも、MetaEditorで対応するスクリプトでこれを行います!

if(Hour() >= xx) открыть;
 
配列でオーダー会計をしているからです。 全てピーキーです。
 
if (!PozyProstavleny){ ArrayResize(Buy,Raz);ArrayResize(Sell,Raz);
   
           Price= (Ask+Dist*Point) ; TP_BUY=(Price+TP*Point);  SL_BUY= (Price- SL*Point);
           Price_SELL= (Bid-Dist*Point) ;  TP_SELL=Price_SELL-TP*Point;  SL_SELL=Price_SELL+SL*Point; K=1;
           
   for(int Raz1=0;Raz1<Raz;Raz1++){
   
           Sleep(2000); RefreshRates();  for(int A=25;A>=0;A--){if(IsTradeAllowed())break;if(A==0) Comment(" эксперту не разрешено 
торговать или поток для выполнения торговых операций занят "); }           
  tyccBuy= OrderSend (Symbol( ), OP_BUYSTOP,  Lot ,NormalizeDouble(Price, Digits), 5, NormalizeDouble( SL_BUY,Digits),  
 NormalizeDouble( TP_BUY,Digits), NULL, 450, 0, CLR_NONE);
   Buy[Raz1]= tyccBuy;
           Price= (Price+Dist*Point) ; TP_BUY= (Price+TP*Point); SL_BUY= (Price- SL*Point);
           Error=GetLastError();
     if (Error!=0){ string errorcomment = "Ошибка открытия ордера байстоп  "  + " " + Symbol() +  " " + ErrorDescript(Error); 
           Print (errorcomment);}
           
           Sleep(2000); RefreshRates();  for( A=25;A>=0;A--){if(IsTradeAllowed())break;if(A==0) Comment(" эксперту не разрешено торговать
 или поток для выполнения торговых операций занят "); }        
           Sell[Raz1]=OrderSend (Symbol( ), OP_SELLSTOP,  Lot ,NormalizeDouble(Price_SELL, Digits), 5, NormalizeDouble( SL_SELL,Digits), 
  NormalizeDouble( TP_SELL,Digits), NULL, 450, 0, CLR_NONE);
     Price_SELL= (Price_SELL -Dist*Point) ;TP_SELL=Price_SELL-TP*Point;   SL_SELL=Price_SELL+SL*Point;
            Error=GetLastError();if (Error==0)
            
            {errorcomment = "Ошибка открытия ордера селлстоп  "  + " " + Symbol() +  " " + ErrorDescript(Error); 
        Print (errorcomment);} PozyProstavleny=1; 
                       }
                       }   
                        
 

皆さん、ごきげんよう。

私は初心者です。テスターでアイデアをコードに落とし込むのは初めての試みです。

考え方は簡単で、1時間足のローソク足の始値で交互に上下に1つずつ注文を出す。

簡単なコードを書いてみた・・・。しかし、問題は、プログラムが1つのローソク足の開始時に複数の注文を開くことがあることです。

1秒間に1回以上カチカチ音がする場合に発生するようです。

if( ) 条件のヘッダを付けてみたのですが・・・。

受注総額()==0

本当に1オーダーしか開きません。



しかし、このバリエーションは、次の日、与えられたろうそくが開かれないので、私には合わない、なぜならこのろうそくのオープニングの瞬間に

取引にはすでにランダムな数の注文が あります。

OrderSend(Symbol(),OP_BUY,0.1,Price,3,SL,TP) の実行を return; で中断することもやってみたのですが・・・・・。は役に立たなかった。


1秒以内にどのティックでも1つだけ注文が出るようにする方法を教えて頂ければ幸いです。

int start()

{
double Price=Ask;
double SL=Price-300*Point;
double TP=Price+300*Point;
if( Hour()==10 && Minute()== 00 && Seconds()==00)
OrderSend(Symbol(),OP_BUY,0.1,Price,3,SL,TP);
}.

 
といった具合に。
 
Dimka-novitsek:
まあ、方法はわからないが、データは保存されているはずだ。

//записать

void SaveArray(string File, double &a[])
{
    int h = FileOpen(File, FILE_BIN|FILE_WRITE);
    if(h>0)
    {
      int sz = ArraySize(a); 
      FileWriteArray(h,a,0,sz);
      FileClose(h);
    }
}

//прочитать

void OpenArray(string File, double &a[], int sz)
{
    int h = FileOpen(File, FILE_BIN|FILE_READ);
    if(h>0)
    {
      ArrayResize(a,sz);
      FileReadArray(h,a,0,sz);
      FileClose(h);
    }
}
 
solnce600:

皆さん、ごきげんよう。

私は初心者です。テスターでアイデアをコードに落とし込むのは初めての試みです。

考え方は簡単で、1時間足のローソク足の始値で交互に上下に1つずつ注文を出す。

簡単なコードを書いてみた・・・。しかし、問題は、プログラムが1つのローソク足の開始時に複数の注文を開くことがあることです。

1秒間に1回以上カチカチ音がする場合に発生するようです。

if( ) 条件のヘッダを付けてみたのですが・・・。

受注総額( )==0

本当に1オーダーしか開きません。



しかし、このバリエーションは、次の日、与えられたろうそくが開かれないので、私には合わない、なぜならこのろうそくのオープニングの瞬間に

取引にはすでにランダムな数の注文があります。

OrderSend(Symbol(),OP_BUY,0.1,Price,3,SL,TP) の実行を return; で中断することもやってみたのですが・・・・・。は役に立たなかった。

1秒以内にどのティックでも1つだけ注文が出るようにする方法を教えて頂ければ幸いです。

int start()

{
double Price=Ask。
double SL=Price-300*Point;
double TP=Price+300*Point;
if( 時()==10 && 分()==00 && 秒()==00)
OrderSend(Symbol(),OP_BUY,0.1,Price,3,SL,TP)を実行。
}

それがTechZadなら、あなたはJobにいるのです!
 
ありがとうございました!!!!!!!
 

solnce600:

1秒以内に、どのティックでも1つしか注文が出ないようにする方法を教えて頂ければ幸いです。

int start()
{
...

int ot=OrdersTotal();

bool open_allowed = true;

if(ot>0)
{
   if(OrderSelect(ot-1,SELECT_BY_POS))
   {
      if(TimeCurrent()-OrderOpenTime()<=1) open_allowed=false;  //если разница между текущим временем сервера и временем открытия последнего ордера 1 секунда или меньше, запретить торговлю
   }
}

if(open_allowed)
{
   //открываемся
}
...
}
 
そうですね...大体.始める前に何か変数を宣言して、時間を覚えておく。注文後、例えばtrueと等しくなる。設定する前に、その確認もしてください。時間変数が苦手なんです。注文が 行われる前に、この変数に追加された場合、時間が真の時間より大きいかどうかをチェックする。もうだめなら、オーダーメイドで、新しい時間をもう一度思い出してくださいはい、そんな感じです。シンプルでいいじゃないですか!